C言語なら俺に聞け! Part 91
レス数が1000を超えています。これ以上書き込みはできません。
0001v(^o^i)d
NGNG質問する前には最低限検索を。
GUIなどの標準Cではできない事の質問は使用している開発環境のスレへGo! (←ここ注目)
ソース丸投げ、宿題、書籍 は専門の別スレがあるのでそこへさようなら。
エラー(警告含む)が起きたのならばエラーメッセージを書きましょう。
C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/
Cプログラマ必読 ・プログラミング言語C(通称 K&R)
http://www.amazon.co.jp/exec/obidos/ASIN/4320026926/
各種リンク、関連スレは>>2-13あたり
C言語なら俺に聞け! Part 90
http://pc5.2ch.net/test/read.cgi/tech/1094025471/
他の過去ログはここに
http://nssearch.hp.infoseek.co.jp/clang/
0002デフォルトの名無しさん
NGNGgcc
http://gcc.gnu.org/
【Win32用の開発環境のみ。】
gcc-cygwin
http://www.redhat.com/software/tools/cygwin/
gcc-mingw
http://www.mingw.org
Digital Mars C++
http://www.digitalmars.com/
Open Watcom
http://www.openwatcom.com/
Borland C++ Compiler 5.5.1
http://www.borland.co.jp/cppbuilder/freecompiler/
Visual C++ Developer Center: Microsoft Visual C++ Toolkit 2003
http://msdn.microsoft.com/visualc/vctoolkit2003/
【ライセンスや機能などに問題あり】
Microsoft C/C++ 13.0.9466(VC.NET)
http://www.microsoft.com/japan/msdn/netframework/downloads/
LCC-Win32
http://www.cs.virginia.edu/~lcc-win32/
CINT
http://root.cern.ch/root/Cint.html
めじろ++98
http://www.vector.co.jp/soft/win95/prog/se075910.html
Intel C++ Compiler for Linux
http://developer.intel.com/software/products/compilers/clin/noncom.htm
0003デフォルトの名無しさん
NGNG0004デフォルトの名無しさん
NGNG乙
>>3
引きずるな ボ ケ
0005デフォルトの名無しさん
NGNG0006デフォルトの名無しさん
NGNG確認したい事があるので教えて下さい。
RTS信号をON・OFFするにはioctlを使用すれば良いことは分かったのですが、
実際にRTS信号をON・OFFするタイミングはこちらがreadのときはOFF、受信を
止めて送信を開始したい場合はONにするという事でいいのでしょうか?
0007デフォルトの名無しさん
NGNG0008デフォルトの名無しさん
NGNGいいえ。
0009デフォルトの名無しさん
NGNGこっちが本スレ?
Cでファイル入力を行うとき,
100,200,300
のような書式でデータが並んでいる場合fscanfを使えば
fscanf(pFile,"%d,%d,%d",&data1,&data2,&data3);
のように簡単に分割して取得できるのですが,
char str[128]="100,200,300"の用に変数にデータが入っていた場合も
同様に簡単に分割して取得できないでしょうか?
0010デフォルトの名無しさん
NGNGsscanf(str,"%d,%d,%d",&data1,&data2,&data3);
0011デフォルトの名無しさん
NGNG0012デフォルトの名無しさん
NGNGおまえ、ホントは分かってないだろ
0013デフォルトの名無しさん
NGNGおまえ、ホントに分かってないだろ
0014デフォルトの名無しさん
NGNGオマエモナ
0015デフォルトの名無しさん
NGNG>>6が正しいのであれば正しいという証拠言ってみろ
0016デフォルトの名無しさん
NGNG>>6が間違ってるのであれば間違ってうという証拠言ってみろ
0017デフォルトの名無しさん
NGNGプッわからないからってその手には乗らない
0018デフォルトの名無しさん
NGNG>>8みたいな意味の無いレスしか出来ないならレスすんなよ。
0019デフォルトの名無しさん
NGNG板間違ってるよ。
0020デフォルトの名無しさん
NGNG8はちゃんと質問に過不足無く答えてるようだが・・・
0021デフォルトの名無しさん
NGNG過不足無ないがその後のレスを見る限り性格は相当悪そうだな。
0022デフォルトの名無しさん
NGNG12がつっかかってるから売り言葉に買い言葉なんだろう
0023デフォルトの名無しさん
NGNGVC++6.0で作っているのですが、2次元データを読み込む配列を作るために関数で、
data=(float**)malloc((N+1)*sizeof(float));
data+=1;
data[0]=(float*)malloc((N*L+1)*sizeof(float));
data[0]+=1;
for(i=0;i<N;i++)
m[i]=m[i-1]+L;
という方法で作っているのですが、sizeof(float)ではメモリを参照できないという
エラーが出て、sizeof(double)で確保すると動きます。
読み込むデータはfloat型で充分ですし、確保する配列のデータ数も読み込むデータ数と
合っています。なぜfloat型でメモリを確保するとエラーが出るのか分かりません。
よろしくお願いします。
0024デフォルトの名無しさん
NGNG2 bbb
3 ccc
2 ddd
という感じでランダムなインデックスの付いた膨大な配列をインデックスでソートしたいのですが、
このとき、同じインデックスが現れた場合、元の配列の後ろに位置しているデータを
優先として前の配列は削除するようにしたいのです。(配列も縮める)
どのようなアルゴリズムがベストでしょうか?
一旦別の一意のインデックスを付けてクイックソートしてから削除した方が良い?
どなたかアドバイスをお願い。
0025デフォルトの名無しさん
NGNG0026デフォルトの名無しさん
NGNGそのPrintfはどんな機能なんですか。
0027デフォルトの名無しさん
NGNGhttp://openbsd.secsup.org/src/lib/libc/stdio/printf.c
http://openbsd.secsup.org/src/lib/libc/stdio/vfprintf.c
0028デフォルトの名無しさん
NGNG0029デフォルトの名無しさん
NGNG#define Printf(...) printf(__VA_ARGS__)
0030デフォルトの名無しさん
NGNGクイックソートできるってことはメモリに収まるってことだよね。
ソートしてから重複削除すれば?
0031デフォルトの名無しさん
NGNGメモリにはなんとか収まります。
やっぱりソート後の削除がベストですかね〜。。
0032デフォルトの名無しさん
NGNG大抵の場合は、一旦ソートしてから処理した方が速い。
ただ、クィックソートって安定じゃなかったような気が。
0033デフォルトの名無しさん
NGNG別の安定したソートアルゴリズムを。
実際に各要素をコピーしたりしないで、そのアドレスを配列にしたものを
ソートしてみては?
0034デフォルトの名無しさん
NGNG何が安定じゃないのか言ってもらわないとな
0035デフォルトの名無しさん
NGNG0036デフォルトの名無しさん
NGNGただ、要素数が多いのならソートの時間が支配的になるので
速くて安定したソートを選んだほうがいいと思う。
0037デフォルトの名無しさん
NGNGクイックソートは難しいけどデバッグしっかりやれば大丈夫だろ。
0038デフォルトの名無しさん
NGNG0039デフォルトの名無しさん
NGNGそう言う意味?
0040デフォルトの名無しさん
NGNGそれは不安定じゃなくて仕様でしょう
クイックソートが悪いわけじゃない
0041デフォルトの名無しさん
NGNG0042デフォルトの名無しさん
NGNGはぁ…
0043デフォルトの名無しさん
NGNG一般的に不安定と呼んでいます
0044デフォルトの名無しさん
NGNG0045デフォルトの名無しさん
NGNG0046デフォルトの名無しさん
NGNG単に、安定じゃないソート方法というだけ。
敢えて悪いか悪くないかを言うならば、安定かどうかも知らずに使う奴が悪い。
0047デフォルトの名無しさん
NGNGどんな感じに書けばよいでしょうか?
0048デフォルトの名無しさん
NGNG環境依存。
0049デフォルトの名無しさん
NGNG0050デフォルトの名無しさん
NGNGと、妹が言っております。
0051デフォルトの名無しさん
NGNG0052デフォルトの名無しさん
NGNGリアルモードx86のブート時を想定してます。
よろしくお願いいたしまんこ
0053デフォルトの名無しさん
NGNG0054デフォルトの名無しさん
NGNG0055デフォルトの名無しさん
NGNGBIOS経由でいけたような気もするし、VRAMに直接書いてた気もする。
いずれにしてもCとは関係ないので他の適切なスレへどうぞ。
0056デフォルトの名無しさん
NGNGありがとうございまんこ
005724
NGNGとりあえず、安定したソート(マージソート辺り)で
最後の結合でうまく重複しないようにしてみます。
どうもありがとうございます。
0058デフォルトの名無しさん
NGNG005924
NGNGクイックソートだと最後にデータの重複チェックをするのですが、
データがでかいのでクイックソートの意味がないくらい時間がかかります。
マージソートで重複チェックしつつソートだけやった方が時間が短縮できそうな
気もしなくもないですが、値がランダムなので微妙です。
何がいいでしょうか。。
0060デフォルトの名無しさん
NGNG安定したソートはだいたい線形的に要素をなめていくパターンになるので
あんまり大差ないような...データの偏り方にもよるし。
1要素の大きさはどうなの?
これもデータの特性(というかサイズ)次第だけど、
要素の内容を入れ替えするときのコストのほうが大きいのではないかと思っているんだけど。
0061デフォルトの名無しさん
NGNGワーストケースが酷い。
0064デフォルトの名無しさん
NGNGソート中に
4+200 バイトの要素の入れ替え→アドレス配列上でアドレスの入れ替えだけ
になる差は大きいと思う。
0066デフォルトの名無しさん
NGNG0067デフォルトの名無しさん
NGNG006825
NGNG出力機能て奴かなぁ。
>>27
ありがとうございます!
でも何かじっくりみないとよくわがんね〜です。
単に Printf("ああああ:%D%D%D",a,b,c)とかでどうやって値を渡しているのか気になったのと、
自作関数作成中でしてPrintfにどういう渡し方をすればいいのか分からなかった物で
自作したいと言うよりは解析したい、と言った感じでした。
Printfは("%D%D%D%D%D%D"a,b,c,d,e,f)等が出来て型にはまっていないので自作関数を作る際に苦労します。
0069デフォルトの名無しさん
NGNGテストで出たけど分からなかったorz
0070デフォルトの名無しさん
NGNG氏ねクソマルチ野郎
0071デフォルトの名無しさん
NGNG>>1に
ソース丸投げ、宿題、書籍 は専門の別スレがあるのでそこへさようなら。
と書いてあるのに。
0072デフォルトの名無しさん
NGNG#include<stdio.h>
int main(int argc, char** argv)
{
char str[100];
int n;
printf("n=");
fgets(str, 97, stdin);
n = atoi(str);
printf("%d\n", n*(n+1)*(n+2)/6);
return 0;
}
0073デフォルトの名無しさん
NGNGありがとうございました。
0074デフォルトの名無しさん
NGNG何で97バイトにしてんの?
0075デフォルトの名無しさん
NGNG改行コードが最長の場合で2バイト("\r\n")と、最後にヌル文字 '\0' が代入されるから。
0076デフォルトの名無しさん
NGNG0077デフォルトの名無しさん
NGNG0078デフォルトの名無しさん
NGNGfgetsは改行文字を含めて(2番目の引数の値) - 1までしか読み込まない。
そして文字列の最後にナル文字をセットするのでfgets(str, sizeof str, stdin);で平気。
それとCでの改行文字は常に'\n'1文字。
0079デフォルトの名無しさん
NGNG0080デフォルトの名無しさん
NGNG>fgetsは改行文字を含めて(2番目の引数の値) - 1までしか読み込まない。
>そして文字列の最後にナル文字をセットするのでfgets(str, sizeof str, stdin);で平気。
今実験してみたらその通りだった。スマソ。
>それとCでの改行文字は常に'\n'1文字。
Cで生成すれば普通は'\n'1文字になるが、ネットワークを通した場合や他の処理系で生成されたテキストデータの場合は、
必ずしも改行コードが '\n'='\x0a' で終わるとは限らない。
実際、"\r\n"の場合もあるし、それこそN88BASICで作られた(遺跡のような)データの場合は
改行コードが'\r'になっている。確か、VisualBasic も'\r'だった希ガス。
0081デフォルトの名無しさん
NGNGハァ? 実際に改行コードが統一されていないために苦労したことがあるから慎重になっただけですが何か?
0082デフォルトの名無しさん
NGNG慎重になるのなら、まずfgetsの仕様調べたら?
0083デフォルトの名無しさん
NGNG0084デフォルトの名無しさん
NGNGおおっとびっくり。
0085デフォルトの名無しさん
NGNG!がふたつ。
0086デフォルトの名無しさん
NGNG高々3バイト程度だったら、余計にバイト数を取るに越したことは無い。
ヌル文字の分を fgets が自動で差し引いてくれる仕様だということを忘れても、
文字列領域を1バイト余計に確保してしまう以上の実害はない。
>>83
論理の2重否定=何も効果が無い
0088デフォルトの名無しさん
NGNG0090デフォルトの名無しさん
NGNG0091デフォルトの名無しさん
NGNG関数の仕様も確認せずに自己流の対応取るような奴はプログラマとして信用できない。
0092デフォルトの名無しさん
NGNGつまり0は1に、0以外の数値は1になるって事ですね?
009392
NGNG0094デフォルトの名無しさん
NGNGint main(void)
{
printf("!0 = %d, !!0 = %d\n", !0, !!0);
printf("!1 = %d, !!1 = %d\n", !1, !!1);
printf("!2 = %d, !!2 = %d\n", !2, !!2);
return 0;
}
!0 = 1, !!0 = 0
!1 = 0, !!1 = 1
!2 = 0, !!2 = 1
0095デフォルトの名無しさん
NGNG書いてる本人が現状を把握してない →いま実害出てるかどうかは問題外
0096デフォルトの名無しさん
NGNG有難う。俺も試してみたかったんだけど自宅PCにコンパイラ
入ってなくて試せなかったんですよ。
0097デフォルトの名無しさん
NGNG全ての関数の仕様を完璧に把握しているプログラマの方がむしろ少数派だと思うのだが。
必要な時に必要なだけ掘り下げるのがプログラマとして正しい姿勢だと思うが?
IEEE の浮動小数点型の構造を、指数部と仮数部のビット数を1ビット違わず完璧に暗記していなくても、
普通の浮動小数点計算のプログラムを作る上では何の支障もない。
マシンイプシロンが問題になるような微妙なプログラムを作る段階になって始めてビット数の配分を調べればいい。
>>72のプログラムは飽くまでも適当な長さの文字列を入力する意図でfgetsを使ったまでで、
1バイトが問題になるような微妙な問題など一切発生しない。
だから、厳密な仕様が分からなくても差し支えないような対応策を取っただけのこと。
ちょっと printf を使うのにわざわざ完全な仕様を調べる馬鹿がどこにいる。
>>95
少なくとも、引数に97を指定すれば高々100バイトまでしか読み込まないという現状を把握していて、
実際にその推論は正しかったわけだが?
0098デフォルトの名無しさん
NGNG「高々3バイト」? 自分の無知、怠慢、頑迷を棚に上げてよく生き残ってこれたな。
0099デフォルトの名無しさん
NGNG単なる逆切れに見えるからもうやめとけ
0100デフォルトの名無しさん
NGNG0101100
NGNG↓
fgets(str,sizeof str,stdin);
0102デフォルトの名無しさん
NGNGわかんなければ、調べればいいじゃん。
勝手に仕様を想像して作ってもしょうがないだろ。
0103デフォルトの名無しさん
NGNG「高々」という言葉を怠慢だと思う香具師は数学も知らないDQNプログラマ。
「高々〜」というのは「〜以下」と同じ意味。
文字列領域を 10^8 個くらい確保する必要があるプログラムとかだったら
1バイトの違いが命取りになる可能性もあるが、
>>72のプログラムで3バイトが命取りになるとでも言うのか?
>>98は中学校程度の英語の文を訳すのに学者でも滅多に使わない辞書を熟読する馬鹿と同じレベル。
0104デフォルトの名無しさん
NGNG「fgetsの仕様知らないんで、大丈夫だと思う方法で使いました」
は問題ありすぎ。
0105デフォルトの名無しさん
NGNG0106デフォルトの名無しさん
NGNG逆切れも何も、必要なときに必要な深さまで掘り下げるのが真のプログラマの素質だと主張しているのだが?
>>102
少なくとも>>72のようなプログラムを書いて困ったことは一度もない。
普段使うのに必要な程度の仕様は理解しているし、
間違っていても高々3バイト程度の誤差だし、原子炉を制御するような慎重さを要するプログラムを想定していない。
0107デフォルトの名無しさん
NGNG正しい使い方すれば無駄な苦労せずに済むのに?
0108デフォルトの名無しさん
NGNG知らないというより、最近使っていないから忘れていた。
一度だけちゃんとした仕様を見たような気がする。
0109デフォルトの名無しさん
NGNG自分の馬鹿さを認めろよ、もう。
0110デフォルトの名無しさん
NGNGそうだね。仕様忘れてたら問題ないもんね。
0111デフォルトの名無しさん
NGNGこういう場合と勘違いしていた。
名前のフィールドが100バイトの場合、一時的に読み込みに使用する文字列変数の長さは
何バイト必要か?
という問題。
さっき fgets を使ってみたら自動的に'\n'が削除されていたから、
コンソール入力の場合は 101 バイト、ファイルからの読み込みの場合でも 102 バイトというのが正解だが、
それを '\n' も入力されるものと勘違いして 103バイトと思っていた。
0112デフォルトの名無しさん
NGNG仮令忘れていようともマニュアルページを一瞬でも見れば思い出すような種類の内容だね。
つまり、「忘れるはずもないようなことも知らない」無知と「忘れているのに確認せずに使う」
怠慢と「指摘されても自分の非を認めない」頑迷さか。
しかも、未だ判っていないで御託並べてるよ。
その御託から察するに、実験的に仕様を確認する能力にも欠けている様子。
「正解」なんてわざわざ書かないでいればただのお馬鹿さんで済んだのにねぇ。
0113デフォルトの名無しさん
NGNG0114デフォルトの名無しさん
NGNG0115デフォルトの名無しさん
NGNGぜんぜん重要じゃないよ。int上限超えてる事にくらべたら。
0116デフォルトの名無しさん
NGNG俺はどこまでいっても確証ってのはヒューリスティックなものに過ぎないと思うがね
プログラマの資質論・道徳論じゃなくてもうちょっと現実的なとこで話そうぜ
0117デフォルトの名無しさん
NGNGだから、高が数値を入力するのにわざわざ仕様を調べる必要はなかったと言いたいのだが。
scanf を使うよりマシだと思って fgets を使ったに過ぎない。
別に、
(前略)
char str[100000];
(中略)
fgets(str, 100, str);
(以下略)
とかでも本質的には問題ない。
0118デフォルトの名無しさん
NGNG0119デフォルトの名無しさん
NGNG削除されてなかったらそのまま残っちゃうんだよ?
int上限「超えてる」ってのが何の話かもよくわかんないんだけど。
0120デフォルトの名無しさん
NGNG費用対効果や個別ケースを想定せずに、常に完全を求めるのが徳論ってことじゃないのか?
0121デフォルトの名無しさん
NGNG削除されたかどうかを知らなくても、どちらでも差し支えないようなプログラムを書ければ問題は無い。
何らかの理由でバイナリモードで開く必要があった場合、'\n'は自動的には削除されない。
>>118
全ての関数の厳密な仕様を完璧に把握しようとすれば誰だってノイローゼになる。
普通は、必要なだけの深さまで掘り下げて理解する。
0122デフォルトの名無しさん
NGNGハイ、仏陀↓
0123デフォルトの名無しさん
NGNG0124デフォルトの名無しさん
NGNGそもそもそんな思想の香具師にプログラムなんて書いて欲しくない。
あー、書くのは構わないな、他人の趣味までどうこうする気はないから。
他人の使うプログラムを書かず、無知を晒さず、引き篭もっててくれればいいよ。
0125デフォルトの名無しさん
NGNGH8マイコンのLCDに表示についてです。
void lcdo4(unsigned char d)
{
d=d | E_SIG;
P3DR=d;
d=d & 0xdf;
P3DR=d;
wait()
}
なのですがお願いします。
なにぶん初心者なので・・・。
0126デフォルトの名無しさん
NGNGワシはゴータマ・シッダールタじゃ!!
0127デフォルトの名無しさん
NGNGこのスレは不適当です。以下のスレから好みのところへどうぞ。
http://pc5.2ch.net/test/read.cgi/tech/1079102543/
http://pc5.2ch.net/test/read.cgi/tech/1090324689/
http://pc5.2ch.net/test/read.cgi/tech/1090652323/
0128125
NGNG0129デフォルトの名無しさん
NGNGそもそも stdio.h の関数自体が欠陥だらけなのだが?
Windows などのプログラムを組むのに、わざわざそんなことを考える必要は無い。
ぶっちゃけた話、>>74の例では、数値が入力できれば何でもいいだろ。
0130デフォルトの名無しさん
NGNG下二つはひでーw
0131デフォルトの名無しさん
NGNG0132デフォルトの名無しさん
NGNG0133デフォルトの名無しさん
NGNG0134デフォルトの名無しさん
NGNGリスク評価って言葉がそいつの辞書にはのってないんだよ。
>>133
潔癖な奴は潔癖だし、適当な奴は適当なままだからな。
で、二人が出会うと反発しあって二人とも自分の方の極へ猛ダッシュして
返ってこなくなっちゃう、と。
0135デフォルトの名無しさん
NGNG必死にこのケースは問題ないとか言ってるし
始めから仕様に沿った使い方してればそもそもケースを考慮する必要もないだろ
0136デフォルトの名無しさん
NGNGわざわざ神経を逆撫でする>>79以降の香具師が悪い。
0137デフォルトの名無しさん
NGNG同じことの反対の側面にあたる考え方だな
興味深い
0138デフォルトの名無しさん
NGNGいやさ、適当に構うとますます墓穴掘るから面白くてね。
0139デフォルトの名無しさん
NGNG少なくとも仕様に反した使い方をした覚えは無い。
0140デフォルトの名無しさん
NGNG問題を解決するという意味では何一つ間違っていないだろ。
どこが墓穴を掘っているのか説明してみろゴルァ
0141デフォルトの名無しさん
NGNG0142デフォルトの名無しさん
NGNGそもそもが代理戦争だからなあ
014372 ◆opz3iyLiAc
NGNG少なくとも漏れは自作自演をした覚えはない。
0144デフォルトの名無しさん
NGNGとりあえずsageない?
part87のほうのレス数も無事追い抜いたことだし、、。
0145デフォルトの名無しさん
NGNGさして爆発力のあるフレームじゃないし、もう息切れじゃね?
0146デフォルトの名無しさん
NGNG0147デフォルトの名無しさん
NGNG0148デフォルトの名無しさん
NGNGのmakefileの作り方教えてください。
環境はwin2k、C:\MinGW\lib\gcc-lib\mingw32\3.2.3です。
TEKITOU.cppはmainが一つだけです。
0149デフォルトの名無しさん
NGNGその割には、わざわざ(あの例では大して意味の無い)改行を気にしてるあたりがねぇ。
細かなこだわりは通すけど、大局は見ないタイプだな。
0151デフォルトの名無しさん
NGNGだから無知蒙昧を曝け出すだけだというのに……
0152デフォルトの名無しさん
NGNGたとえバッファあふれしても大問題になる可能性はまず無いな。
scanfで十分なんじゃない?
0153デフォルトの名無しさん
NGNG知識も無いのに、安全で最小だということがわかるんだ。
0154デフォルトの名無しさん
NGNG0155デフォルトの名無しさん
NGNG64ビットだとしても高々(十進法で)20桁、128ビットだとしても高々39桁しか必要としない。
だが、トリビアルなプログラムのためにわざわざ厳密な桁数を求める必要はない。
100桁とするのは適切な判断だと思うが?
>>152
scanfだと固まる可能性もあるし、あえてscanfを使う必要も無い。
>>153
バイト単位の厳密な部分を忘れていただけで、本質は把握していたわけだが?
0156デフォルトの名無しさん
NGNGあえて3を引く必要もないよね。
0157デフォルトの名無しさん
NGNG本質的な問題を無視するのなら理解できるけど、間違っちゃたのを
「動けば良いじゃん」と開き直るのはかっこ悪いよ。
0158デフォルトの名無しさん
NGNG1. 概要
#include <stdio.h>
char *fgets(char * restrict s, int n, FILE * restrict stream);
2. 解説
fgets関数は、nによって指定される文字数より高々1少ない文字数を、
streamによって指されるストリームから、sによって指される配列に
読み込む。改行文字の後(これは保持される)、またはEOFの後には
文字列は追加されない。最後の文字が読み込まれた直後には
ヌル文字が書き込まれる。
(from ISO/IEC 9899:1999)
015972 ◆opz3iyLiAc
NGNG3を引いても動きます。
>>157
void chomp(char* str)
{
while (*str) {
if (*str != '\r' && *str != '\n') {
*str = '\0';
break;
}
str++;
}
}
こういう関数でも作れば万事解決。
fgets で読み込んでから、chomp すればいい。
0160デフォルトの名無しさん
NGNG0162デフォルトの名無しさん
NGNGお前もういいよ、お前の居場所は寧ろこっちだ。
http://pc5.2ch.net/test/read.cgi/tech/1090324689/
得得と>159のようなコードを書いているようじゃね。
0163デフォルトの名無しさん
NGNGそれを見つけられないという時点でやっぱり恥だ。
0164デフォルトの名無しさん
NGNGさすが、本質を理解してる人はすばらしいプログラムを書くね。
0165デフォルトの名無しさん
NGNG0166デフォルトの名無しさん
NGNG延々と馬鹿かっつーの
0167デフォルトの名無しさん
NGNGハゲ同
0168デフォルトの名無しさん
NGNGfgetcでもやってみたのですが1バイト読み込んだところで
feofで0以外の値が返ってきました。
どうやって読み込めば良いんですか?
0169デフォルトの名無しさん
NGNGバイナリモードにするとどうなる。
0170168
NGNG0171デフォルトの名無しさん
NGNG0172デフォルトの名無しさん
NGNGFF D8 FF E0 00 10 4A 46 49 46 00
なんで、何か違うファイルか変な使い方をしていると思う。
0173デフォルトの名無しさん
NGNGヘッダは>>172のようになってました。
読み込む部分のソースです。
unsigned char *f(FILE *fp)
{
unsigned long size;
unsigned char *p;
if (fseek(fp, 0, SEEK_END))
return NULL;
if ((size = ftell(fp)) == -1)
return NULL;
if ((p = (unsigned char *)malloc(f_size)) == NULL)
return NULL;
memset(p, 0, size);
if (fread(p, size, 1, fp) != 1)
return NULL;
return p;
}
0174デフォルトの名無しさん
NGNG0175デフォルトの名無しさん
NGNG0176デフォルトの名無しさん
NGNGあとmemsetはその後freadで上書きされるので要らない。
0177デフォルトの名無しさん
NGNG1バイト読んだところで終わるのは先頭にseekするのを忘れていたからでした。
修正して試しましたが、gdbですが
$5 = (unsigned char *) 0xa0423a0 "リ・
で読み込めてませんでした。
unsigned char *f(FILE *fp)
{
unsigned long size;
unsigned char *p;
long long ll = 0;
if (fseek(fp, 0, SEEK_END)) {
return NULL;
}
size = ftell(fp);
if ((p = (unsigned char *)malloc(size)) == NULL) {
return NULL;
}
memset(p, 0, size);
if (fseek(fp, 0, SEEK_SET)) {
return NULL;
}
while (!feof(fp)) {
p[ll] = fgetc(fp);
if (ferror(fp)) {
}
ll++;
}
return p;
}
173のソースはmalloc(size)です。
0178デフォルトの名無しさん
NGNGすれ違いってしまいましたが
>>177の通りfreadの方でも先頭に戻しましまたが
(unsigned char *) 0xa0423a0 "リ・
という風に>>177と同じでした。
0179デフォルトの名無しさん
NGNG落ち着け、gdbで表示されているのはpのアドレスじゃないか?
pの中身は期待通りになってるのか確認してみろ。
0180デフォルトの名無しさん
NGNG$5って書かれても、gdbで何を表示したらそうなったのかわかんないんだけど。
0181デフォルトの名無しさん
NGNGお騒がせしてすんませんでした。
gdbではある程度配列の中身が表示されて...とつくのにリ・だけだったのと、
%sで表示したときもリ・だけ表示されたので駄目だと思ってしまいました。
>>179
リ・はjpegファイルの先頭の部分でした。
>>180
p 引数 というコマンドで出てきました。
何なのか自分も解りませんでしたが
$の後の数字はどうやらpのコマンドを実行したの回数のようです。
0182デフォルトの名無しさん
NGNG--------
int a = NULL;
do {
if (a != NULL) {
printf("入力された文字>> %c\n\n", a);
}
printf("キーを入力して下さい\n");
a = getchar();
} while (a != -1);
---------------------
最初の1回目は a = getchar(); この部分で入力待ちが起こるのですが、
2回目の a = getchar()の行ではそのまま素通りされているような実行結果が
出てしまいます。
----------------------------
キーを入力して下さい
a
入力された文字>> a
キーを入力して下さい
入力された文字>>
キーを入力して下さい
--------------------------
このような結果になるのですが、2回目のa = getchar()では入力待ちで待機されないのでしょうか?ご指摘お願いします。
0183デフォルトの名無しさん
NGNGgetcharの後にダミーのgetcharを置かないと連続した2回目のgetcharには
リターンが入ってしまいますよ
0184デフォルトの名無しさん
NGNGバッファからaの一文字が変数aに書き込まれる。
2回目のgetcharでバッファに残ってる\nが変数aに書き込まれてる。
0185デフォルトの名無しさん
NGNG0186182
NGNGありがとうございます。
なるほど、内部ではそうなっているんですか。
なんとなく、1回目の処理が終った後も、
ゴミみたいなのが残ってて2回目がおかしな処理になっているんだろうと思ったんですが
解決には至りませんでした。
fgetsで試してみます。ありがとうございました。
0187デフォルトの名無しさん
NGNG0188デフォルトの名無しさん
NGNG解答者でそのレベルなら痛いがな
0189デフォルトの名無しさん
NGNG下に書いたような処理をしようとしています。
hoge1を呼び出そうとしましたが当然エラーです。
#include<stdio.h>
#define HOGE(item) hoge##item
void hoge1(void)
{
printf("hoge1\n");
}
void hoge2(void)
{
printf("hoge2\n");
}
main()
{
int a='1';
HOGE(a)();
return 0;
}
文字列連結の##ってやつ、どういった時に使うのかわかりません。
何の役に立つかもわかりません。
このような処理を実行させるのはCでは無理でしょうか?
0190デフォルトの名無しさん
NGNG0191デフォルトの名無しさん
NGNGHOME(1)();
HOME(2)();
と必要に応じて書く
defineを解釈するのはプリプロセスの段階だということを意識できると
いいんだが
0192デフォルトの名無しさん
NGNG0193デフォルトの名無しさん
NGNGHOGE(1)();
0194デフォルトの名無しさん
NGNG0195デフォルトの名無しさん
NGNG実行時に変数の内容で呼び出す関数を振り分けたいなら、
関数ポインタの配列を使いなさい。
void (*hoge[2])(void) = {hoge1, hoge2};
int a = 0;
hoge[a]();
0196デフォルトの名無しさん
NGNG>>190-195 返答ありがとうございました!
0197デフォルトの名無しさん
NGNG環境設定処理を読み込み、環境設定情報を環境設定情報管理テーブルに
保持するってどーゆー意味ですか?
0198デフォルトの名無しさん
NGNGint main(int argc, char* argv[], char** envp)
というふうにmainの引数は3つあるわけなのですが、
envpは環境変数が書き込まれており、
それをテーブルに入れるって言うことなのかな?
0199デフォルトの名無しさん
NGNG読み込んで実行して、環境設定情報を環境設定情報管理テーブルに書き込
むんじゃないの?
0200デフォルトの名無しさん
NGNG#どうせそのプロジェクト内でしか通じないローカル語だろ。
0201デフォルトの名無しさん
NGNGそれを自前で作っても知れているけど。
0202デフォルトの名無しさん
NGNG#defineOUTLENSHELTER_2
#define OUT( x , y )\
for( short cnt=0 ; cnt < OUTLEN ; cnt ++ )\
printf( "%c" , *( OUTBUF + cnt ) )
#defineSHELTER_1OUTPUT
#defineSHELTER_2OUTLEN
こんな感じで、OUTの時だけ文字列置換を行いたいんですけど、
もっと他のうまいやり方ないですか? どなたかお手本お願いします。
0203197
NGNGプログラムを作る実習で初期化設定のモジュール作成
の担当になったのですが、何を作ればいいのかわからず、
困っています。
0204デフォルトの名無しさん
NGNG初期設定というからには本番の処理で何が必要になるかがわかっていなければならない。
ファイルだのレジストリだの環境変数だのの手段よりもまず、要求定義しないと書きようがないのは当たり前。
0205デフォルトの名無しさん
NGNG設定ファイルを開いて、一行ずつ読み込んで、トークンに分けて、…
0206デフォルトの名無しさん
NGNGどういうものがあるんですか?
0207デフォルトの名無しさん
NGNGそんな事を聞いてどうする
0208デフォルトの名無しさん
NGNGC++ D Java C# csh
0209デフォルトの名無しさん
NGNGレスありがとうございます
Cを覚えてからだと
それらの習得も効率が良かったりしますか?
0210デフォルトの名無しさん
NGNGむしろCが後だ。
0211デフォルトの名無しさん
NGNGやりたいのから逝け。
小さなメリット・デメリットより、本人のやる気が支配的な条件。
0212デフォルトの名無しさん
NGNG0213デフォルトの名無しさん
NGNGCを覚えてからだとC++を理解するのは非常に楽。
だってCの拡張言語なんだもん
同じようにJavaもすぐに理解できるようになる。Javaは若干違うんだけどね。
0214デフォルトの名無しさん
NGNG他の言語に比べて
C言語が得意とする仕事や処理っていうのはどんな感じでしょうか
例えばBASICとかは
自分の中では、自然科学とかの分野で
グラフの演算とかのイメージが強いんですが・・
0216デフォルトの名無しさん
NGNGそういうのは無いから、
オーバフロしないように論理的にプログラムしないとだめ。
もしくは、その型の最大値、最小値の間に収まっているか調べないとだめ。
0217デフォルトの名無しさん
NGNG具体的に何がしたいのか判る文章を書いてくれ。
>>203
スレ違いだ。
http://pc5.2ch.net/test/read.cgi/tech/1094494997/
http://pc5.2ch.net/test/read.cgi/tech/1095075678/
http://pc5.2ch.net/test/read.cgi/tech/1090324689/
0218デフォルトの名無しさん
NGNG少しレスしてたけど、君はスレ違い気味だね。
↓に行くといいよ
http://pc5.2ch.net/test/read.cgi/tech/1034505166/
http://pc5.2ch.net/test/read.cgi/tech/1092932484/
0219デフォルトの名無しさん
NGNG>他の言語に比べて
>C言語が得意とする仕事や処理っていうのはどんな感じでしょうか
余り気にすることはない。そもそも、あんたの中のイメージが間違っているから。
0220デフォルトの名無しさん
NGNGアセンブラ
0221デフォルトの名無しさん
NGNGこれでも読んでおけ
http://www.limo.fumi2kick.com/forum/lm_forum02.html
0222202
NGNG自己解決です。意味不明な事でスレ汚しすみません。
0223デフォルトの名無しさん
NGNGもともとOSを作るための言語だったのは知ってるか?
色んな分野あるけど、それも「やりたいのから逝け」。
俺なんぞ、モーターが動いたり光に反応したりと、そーゆーのが好きだが
おまえさんにはおまえさんの興味があるだろ。
Cの得意分野というより、Cは守備範囲の広さが売り。
0224デフォルトの名無しさん
NGNGありがとうござます
そちらできいてみます
0225デフォルトの名無しさん
NGNGありが�dございます。
0226デフォルトの名無しさん
NGNG0227デフォルトの名無しさん
NGNG0228デフォルトの名無しさん
NGNG0229デフォルトの名無しさん
NGNG0230デフォルトの名無しさん
NGNGこれがなぜいけないのか私には分かりません
どなたか説明して頂けませんか?
0231デフォルトの名無しさん
NGNG0232デフォルトの名無しさん
NGNGin_buff = ((pattern_length<<24) & 0xff000000)|((pattern_length<<8) & 0xff0000)
|((pattern_length>>8) & 0xff00)|((pattern_length>>24) & 0xff);
fwrite(&in_buff, sizeof(int), 1, stream);
in_buff = ((list_count<<24) & 0xff000000)|((list_count<<8) & 0xff0000)
|((list_count>>8) & 0xff00)|((list_count>>24) & 0xff);
fwrite(&in_buff, sizeof(int), 1, stream);
in_buff = 0x1000000;
fwrite(&in_buff, sizeof(int), 1, stream);
in_buff = 0;
fwrite(&in_buff, 4, 1, stream);
fwrite(&in_buff, 1, 1, stream);
fwrite(list, sizeof(short), list_count, stream);
fclose( stream );
すいません、このコードの解説お願いできないでしょうか?辞書引いてもどうにもこうにも意味が
よく分かりませんです・・・
0233デフォルトの名無しさん
NGNGextern unsigned int u[10];
unsigned short *s;
int i, t = 0;
s = (unsigned short *) u;
for (i = 0; i < 20; i++)
t += a[s[i]];
unsigned int *をunsigned short *にキャストしてますが
これの結果は何が起こるか分からないとかいうものですか?
それとも正しいコードですか?
0234デフォルトの名無しさん
NGNGそのコードだけではなんとも言えないが、正しく動く可能性は充分ある。
まぁ、sizeof(unsigned short) * 2 == sizeof(unsigned)という前提は必要だが。
>>232
・list_instを書き出し
・4バイト整数値pattern_lengthをエンディアン変換して書き出し
・4バイト整数値list_countを…(以下同文
・4バイト整数値1を…(以下同文
・4バイト整数値0を書き出し
・1バイト0を書き出し
・listを書き出し
・書き出したstreamを閉じ
>>230
iのインクリメントと代入のタイミングが特定できない。
0235デフォルトの名無しさん
NGNGin_buff = ((pattern_length<<24) & 0xff000000)|((pattern_length<<8) & 0xff0000)
|((pattern_length>>8) & 0xff00)|((pattern_length>>24) & 0xff);
fwrite(&in_buff, sizeof(int), 1, stream);
pattern_length(おそらく4byte int)の
ビッグエイディアンをリトルエイディアンの配置(或いは逆)に置き換え、
in_buffに入れて出力している様です。
どうもint型におけるメモリ格納状況を見たい感じです。
0236デフォルトの名無しさん
NGNGsを初期化していないから何が起こるか分からない。
0237デフォルトの名無しさん
NGNG0238デフォルトの名無しさん
NGNGexternだから、0に初期化されているんでは?
0239デフォルトの名無しさん
NGNGローカル変数でしょ。
intはextern intの省略。
0241232
NGNGマジありがとうございます!うーんそういうことだったのか・・・
もっと勉強しますね
0243デフォルトの名無しさん
NGNGもしそうだとしてもNullPointerException、誰かにガッされて終わる。
0244デフォルトの名無しさん
NGNG0245デフォルトの名無しさん
NGNGuがどこなのかは兎も角。
0246デフォルトの名無しさん
NGNG>intはextern intの省略 は
intはauto intの省略の間違えって事でOK??
0247デフォルトの名無しさん
NGNG0248デフォルトの名無しさん
NGNG>>239 さんの書き込みが私にはイマイチ理解できませんでした。
という事は、普通にintと宣言したらそれはextern auto int の省略なのですか?
検索してもなかなかわかりません。
それと、調べているうちもうひとつ疑問にぶつかりました。
http://www.komonet.ne.jp/~c/chap21.htm のページで
『2.関数プロトタイプと関数の引用記述で引数の数が不一致の場合は、文法エラーとなります。ただし、プロトタイプで数不定( ... )が指定してある場合は、数のチェックは行われません。』
>ただし、プロトタイプで数不定( ... )が指定してある場合
プログラムで書くならばどういう事でしょうか。
親切な方、解説キボソ
0249デフォルトの名無しさん
NGNGhttp://www.komonet.ne.jp/~c/chap4.htm
0250デフォルトの名無しさん
NGNGいや、extern の意味ぐらいわかりますが・・・
残念ながらそこには求める答えはないようです。
0251デフォルトの名無しさん
NGNG0252デフォルトの名無しさん
NGNGこうする事のメリットがわからんー!。・゚・(ノД‘)・゚・。
#include<stdio.h>
void hoge(...)
{
printf("aaa") ;
}
int main(void)
{
int a = 5 ;
hoge() ;
return 0 ;
}
0253デフォルトの名無しさん
NGNG>>238-240の人のやり取りがわかんないYO だれかHelp...
0254デフォルトの名無しさん
NGNGintがextern intの省略(書いても書かなくても同じ)というのは間違い。
だから気にしなくてもいい。
0255デフォルトの名無しさん
NGNGint a=1;
int b=3;
int c=a/b*b;
これで実行するとcは0になってしまいます
doubleやfloatを使わずにcを1にすることは可能でしょうか?
c=a/b*bの式の変数の順番や演算子は変えずにお願いします
0256デフォルトの名無しさん
NGNGそ、そうですよね。。。なんか安心しました。
どうもです。
0257デフォルトの名無しさん
NGNG変数の順番や演算子を変えればいいじゃん。
何でそんなくだらないものにこだわるわけ?
0258デフォルトの名無しさん
NGNGプログラム的に様子はおかしくない。
お前の思考の様子がおかしいと言っておこう。
0259デフォルトの名無しさん
NGNG宿題なのですが…
ないなら問題にけちをつけようかと思っているのですが…
0260デフォルトの名無しさん
NGNG>>1すら読めないお前は頭いかれてるよ
0261デフォルトの名無しさん
NGNG動的引数の質問です。
http://publications.gbdirect.co.uk/c_book/chapter9/stdarg.html
ここで動的引数の最大値を返す関数を紹介していますが、
第一引数で対象となる引数の数を入れなくてもいい方法はありませんか?
maxi(4, 2, 1, 0, 6); -> 6
maxi(2, 2, 5, 3); -> 5
maxi(0, 0, 1); -> 1
このような感じのものを期待しています。
ご教示願います。
0262デフォルトの名無しさん
NGNGと書いてるのが読めないのか。
0263デフォルトの名無しさん
NGNG宿題ぐらいの問題なら型キャスト使えばええんちゃうの?
int c=(int)((float)a/b*b);
0264デフォルトの名無しさん
NGNG使わずにと書いてるのが読めねえのかよぼけ
0265デフォルトの名無しさん
NGNGありません
0266デフォルトの名無しさん
NGNGだから宿題ぐらいって書いてるじゃん
おめぇが読めねぇのか ぼけ
0267デフォルトの名無しさん
NGNG> ソース丸投げ、宿題、書籍 は専門の別スレがあるのでそこへさようなら。
日本語としておかしいので、もっと厳密に書いて欲しい。
0268デフォルトの名無しさん
NGNG0269デフォルトの名無しさん
NGNG0270デフォルトの名無しさん
NGNG使うなと書いてるのに使うな池沼
0271デフォルトの名無しさん
NGNGたとえば、
printfも引数の数は可変だけど、第一引数の中で%dとか%sとかを書くので
引数の数と型は第一引数から判断がつくよね。
0273デフォルトの名無しさん
NGNGグローバル変数で数を指定すればいい。
0274デフォルトの名無しさん
NGNG逝ってよし
0276デフォルトの名無しさん
NGNG宿題だからこそ使っちゃまずいだろ。
0277265
NGNG0278デフォルトの名無しさん
NGNGJavaかよ!
0279デフォルトの名無しさん
NGNG0280デフォルトの名無しさん
NGNGあんただれ?
0282デフォルトの名無しさん
NGNG第一引数が嫌だったら、最後の引数を特殊な数(例えば、-10000など)にする方法がある。
-10000になるまで大小比較を繰り返し、-10000になったら終了するようにする。
0283デフォルトの名無しさん
NGNGb=3; を b=1; に変更するよろし。
0284デフォルトの名無しさん
NGNG0285デフォルトの名無しさん
NGNGあ、それ正解っぽいぞ
出題ではaやbの値を変えたらだめって書いてないし。
0286261
NGNG今回期待しているものとはちょっと違うのです。
でも番兵の方がスマートなときもあると思うので、
そのときまた考えます。tnx.
;; 7 行で中置記法の四則演算ができないかと思案中です。
0287デフォルトの名無しさん
NGNG構造体の中に倍精度の変数6個とintが1個入っていて、
その構造体を
a[1520][380]
だけ定義して使っているのですが、どうやら多すぎるようなのです。
gcc 3.3.2を使っています。
どなたか、このようにたくさんのものを定義できるような方法をご存知の方が
おられましたら、お教えください。
0288デフォルトの名無しさん
NGNG0289デフォルトの名無しさん
NGNGstruct kouzoutai** a;
a=(kouzoutai**)malloc(1520*sizeof(kouzoutai*));
for(i=0;i<1520;i++)
a[i]=(kouzoutai*)malloc(380*sizeof(kouzoutai));
0290デフォルトの名無しさん
NGNGfor(i=0;i<1520;i++)
free(a[i]);
free(a);
をする。
0291デフォルトの名無しさん
NGNGどうもありがとうございます。さっそくやってみます。
0292デフォルトの名無しさん
NGNG別に多いとは思わないが、スタックに取ろうとしてるんじゃないのか?
0293デフォルトの名無しさん
NGNGその程度の人はお帰りください。
0294デフォルトの名無しさん
NGNG0295デフォルトの名無しさん
NGNG0296デフォルトの名無しさん
NGNGわざわざ他人に聞く必要などさらさらない
わかるまであらゆる処理をポインタなしで書いてみれ
0297デフォルトの名無しさん
NGNGポインタ無しで書けないプログラムはありません。
0298デフォルトの名無しさん
NGNGmalloc書いてみろ
0299デフォルトの名無しさん
NGNG最初から配列を確保すればそれで済みます。
0300デフォルトの名無しさん
NGNG0301デフォルトの名無しさん
NGNGその配列を定義してみせろ
0302デフォルトの名無しさん
NGNG型が分かっていれば、
Type array[10000];
糸冬 了
0303デフォルトの名無しさん
NGNG0304デフォルトの名無しさん
NGNGD言語では動的配列が普通に配列と同じように生成できるし、freeいらないし便利そう。
0305デフォルトの名無しさん
NGNG0306デフォルトの名無しさん
NGNG0307デフォルトの名無しさん
NGNGじゃ、作れよGC
そーゆーことのための道具だけ持ってて
結局なにも作んねーやつを bogus つーんだよ
0308デフォルトの名無しさん
NGNG環境依存の方法しかないのでしょうか?
0309デフォルトの名無しさん
NGNGyes
0310デフォルトの名無しさん
NGNG0311デフォルトの名無しさん
NGNG0312デフォルトの名無しさん
NGNGなんで君が突っかかってくるのかよくわからないんだけど?
私が何も作ってないと言い切っているところが電波というかDQNというか…
0313デフォルトの名無しさん
NGNG0314デフォルトの名無しさん
NGNG304のような発言こそ電波満載
0315デフォルトの名無しさん
NGNGでもやっぱりGCはあった方が便利だよ。
D言語では動的配列が普通に配列と同じように生成できるし、freeいらないし便利そう。
0316デフォルトの名無しさん
NGNGでもやっぱりGCはあった方が便利だよ。
Rubyでは動的配列が普通に配列と同じように生成できるし、freeいらないし便利そう。
0318いなむらきよし
NGNG0319デフォルトの名無しさん
NGNGなぜ 10000 で十分なんだ?
もっと必要なんだが(w
0320デフォルトの名無しさん
NGNG壷でマウスパッドがもらえると言ってるだろう(早い者勝ち)
これで素敵な2ちゃんねるライフをすごせます。。。
0321デフォルトの名無しさん
NGNG状況によって違います。メモリが十分にあるんだったら、
#include <limits.h>
・・・
Type array[INT_MAX];
これでおk?
0322デフォルトの名無しさん
NGNG0323デフォルトの名無しさん
NGNG荒業だけど、文字列だって
typedef struct {
char s[1000];
} String;
とかすればポインタを使う必要がない。
0324デフォルトの名無しさん
NGNGじゃ、それで環境費依存で汎用のソートマージ作ってみろ
# お前らさっきから口ばっかりで何も作ってない
0325デフォルトの名無しさん
NGNG0326デフォルトの名無しさん
NGNG0327デフォルトの名無しさん
NGNG話そらすな、さっさと作れ木偶の坊
0328デフォルトの名無しさん
NGNGそのopenでファイル名渡しに使うのはポインタなんですよ。
0329デフォルトの名無しさん
NGNG0330デフォルトの名無しさん
NGNGワラタw
0331デフォルトの名無しさん
NGNG書き込むことを考えています。
struct field{
char* name;
char* value;
}
フォームをこのような構造体に分割し、
void make_file_name( char* file_name )
{
time_t now;
struct tm *tm_now;
now = time(NULL)
・
・
}
こんな感じの関数でファイル名を作成します。
フォームを分割し、
make_file_nameを"呼ばずに"fieldの値を参照すると問題なく分割されているのですが
分割後、make_file_nameを呼んでからfieldの値を参照するとsegmentation fault
が出てしまいます。どのような理由が考えられるでしょうか?
どなたか回答お願いします。
0332デフォルトの名無しさん
NGNG>分割後、make_file_nameを呼んでからfieldの値を参照する
ここのソースを晒せ
03331/2
NGNGtypedef union {
char c;
int i;
float f;
double d;
/* とにかく、最初から実装されている型すべて */
} anytype;
typedef struct {
int len;
anytype array[100000];/* 十分な長さ */
} anyarray;
int cmp(anytype a, anytype b, int typecode)
{
switch (typecode) {
case 1: if (a.c < b.c) return -1; else if (a.c > b.c) return 1; else return 0;
/* この要領で全ての型について書く */
}
}
03342/2
NGNG{
anyarray b, c, r;
int i, j, k=0;
if (a.len == 1) {
return a;
}
/* 分割 */
for (i=0; i<a.len/2; i++) b.array[i] = a.array[i];
b.len = a.len/2;
for (j=0; i<a.len; i++, j++) c.array[j] = a.array[i];
c.len = a.len - a.len/2;
b = margesort(b, typecode);/* 各々をマージソート */
c = margesort(c, typecode);
/* マージ */
i=0; j=0;
while (k<a.len) {
if (cmp(b.array[i], c.array[j], typecode) < 0 || j==c.len) {r.array[k++] = b.array[i++];}
else {r.array[k++] = c.array[j++];}
}
return r;
}
0335デフォルトの名無しさん
NGNGなぜ十分だと分かる?
もっと必要だろヴォケ!
0336デフォルトの名無しさん
NGNG0337デフォルトの名無しさん
NGNG0338デフォルトの名無しさん
NGNGマージソートとは別に言っていないが、それは置いといて・・・
>/* この要領で全ての型について書く */
数学的に破綻してるんだよアフォ
それと、ユーザにソースの修正を毎回させるんだな?
0339デフォルトの名無しさん
NGNG汚いですが・・・
void make_file_name( char* file_name )
{
char temp[5];
time_t now;
struct tm *tm_now;
now = time(NULL);
tm_now = localtime( &now );
sprintf( temp,"%d",tm_now[0].tm_year+1900 );
strcat( file_name, temp );
if( (tm_now[0].tm_mon + 1 ) < 10 )
strcat( file_name,"0" );
sprintf( temp,"%d",tm_now[0].tm_mon+1 );
strcat( file_name, temp );
if( tm_now[0].tm_mday < 10 )
strcat( file_name, "0" );
sprintf( temp, "%d",tm_now[0].tm_mday);
・
・
スンマセン、略します。この後tm_now[0].tm_secまで
文字列を連結します。
}
make_file_name単独ではきちんと日付を出してくれます。
この関数内でfield構造体に触れることはなく、
何が原因なのかさっぱりです。
0340デフォルトの名無しさん
NGNGだから、そんなに文句があるんだったら INT_MAX を使えばいい。
メモリを2GB積んでいるパソコンは今のところそんなに多くないから。
型の大きさが1MBくらいある場合も十分考えられる。
>>336-337
マジレスすると、
+:(char)×(char)→(char)
+:(unsigned char)×(unsigned char)→(unsigned char)
+:(int)×(int)→(int)
+:(unsigned int)×(unsigned int)→(unsigned int)
+:(long)×(long)→(long)
+:(unsigned long)×(unsigned long)→(unsigned long)
+:(long long)×(long long)→(long long)
+:(unsigned long long)×(unsigned long long)→(unsigned long long)
+:(float)×(float)→(float)
+:(double)×(double)→(double)
+:(long double)×(long double)→(long double)
+:(anytype*)×(int)→(anytype*)(char*, int* などについても同じ)
は定義されているが、
+:(int)×(anytype*)→
は定義されていない。
0341デフォルトの名無しさん
NGNG>メモリを2GB積んでいるパソコンは今のところそんなに多くないから。
面白い?笑えないんだけど
0342デフォルトの名無しさん
NGNG同感
ヤクでもキメてんじゃねえの、こいつ?
0343デフォルトの名無しさん
NGNGポインタ
と
ポインタが指している領域
と
(ある領域に)格納されている値
について小一時間勉強しなさい。
たぶん make_file_name( ) を呼び出している所のパラメータに問題あり。
0344デフォルトの名無しさん
NGNGハァ?一体どれだけ確保すれば納得するわけ?
100000じゃ少ないというから INT_MAX=2^31-1 を出したんだろ。
だったら、
(int)((100000LL+(long long)INT_MAX)/2LL)
個の要素を確保する。これで文句ないだろ。
まともな人間であれば、31回以内の質問で適切な数に収束する。
0346デフォルトの名無しさん
NGNG秋ですね
0347337
NGNGだからなに?w
0348デフォルトの名無しさん
NGNG要求定義は?
0349デフォルトの名無しさん
NGNGそんないい加減な確保の仕方で起動できるソース書けるのか?
寝言は寝て言えよ
0350デフォルトの名無しさん
NGNG理解できないんだったら仕様書を小一時間嫁、ヴォケ
>>348
相手が満足する数。int型で表される正の整数の中に、十分でかつ過剰でないと感じる数が存在しなければ基地外。
>>349
だから、最初から定数を配列に書けばいい。
それに、文法が間違っていたり致命的なエラーを起こさない限り、
起動できないソースを書くほうが難しい。
0351デフォルトの名無しさん
NGNGもう一つ配列作りたいんですけど、どうしたらいいでしょうか。
0352デフォルトの名無しさん
NGNG0353デフォルトの名無しさん
NGNG汎用といったはず
多すぎても少なすぎてもダメ
0354デフォルトの名無しさん
NGNG0355デフォルトの名無しさん
NGNG開始する要素番号を保持する。
int start_of_1starray = 0;
int start_of_2ndarray;
start_of_2ndarray = sizeof(array)/(2*sizeof(anytype));
0356デフォルトの名無しさん
NGNGSegmentation faultと怒られました。
0357デフォルトの名無しさん
NGNG途中で配列の大きさを変えることはできないのですか?
0358デフォルトの名無しさん
NGNGだから、多すぎず少なすぎない数が少なくとも1つ存在するはず。
1だとどう考えても少ない。
INT_MAX だとどう考えても多い。
ということは、1<n<INT_MAX となる n の中に適切な数がある。
1<n≦(INT_MAX+1)/2 か、(INT_MAX+1)/2<n<INT_MAX のどちらかしかありえない。
そのように絞り込むと、必ず適切な n が現れる。
だから、(int)((100000LL+(long long)INT_MAX)/2LL)ではどうかと聞いた。
これが多いと答えるか、少ないと答えるかで次の質問が決まる。
0359デフォルトの名無しさん
NGNGそんな事を考えないでも使えるようにしろよ
0360デフォルトの名無しさん
NGNG1で十分ですが。
0361331
NGNGすみません、”ある領域”とは?
ググるにしてもキーワードがさっぱり。
ポインタについては理解しているつもりです。
何か詳しいサイトなどありましたら
教えて欲しいです。
0362デフォルトの名無しさん
NGNGだったら、もっと少ない数を指定するか、プラグマを使って場合わけする。
>>355
start_of_2ndarray の値を変更する。
データが入っているときは、その都度移動する。
0364デフォルトの名無しさん
NGNGプログラムを、別のパソコンにコピーしたらいきなり落ちちゃいました。
0365デフォルトの名無しさん
NGNGmallocは考えなくても使えるぞ?
0366デフォルトの名無しさん
NGNG0367デフォルトの名無しさん
NGNG二分法を使ってみたいんじゃないの?
0368デフォルトの名無しさん
NGNG0369デフォルトの名無しさん
NGNG0370デフォルトの名無しさん
NGNG0371デフォルトの名無しさん
NGNG0372デフォルトの名無しさん
NGNGたまに出てくるけど、面白かった事など一度も無い。
0373デフォルトの名無しさん
NGNG0374デフォルトの名無しさん
NGNG0375デフォルトの名無しさん
NGNG0376デフォルトの名無しさん
NGNGいいからmalloc作れ
0377デフォルトの名無しさん
NGNG0378デフォルトの名無しさん
NGNG0379デフォルトの名無しさん
NGNG0380デフォルトの名無しさん
NGNGCは自己記述可能な言語だ
あんたがCを使ったことがあるなら
そこですでにポインタを使ってるんだよ
文句あるならポインタ抜きで
Cの翻訳処理系を作ってみろ
0381デフォルトの名無しさん
NGNG配列よりはすがりがいがあるだろ。
0382デフォルトの名無しさん
NGNG荒業だが、配列を関数内部に組み込む。
#define SIZE_OF_ARRAY 1000000 /* 気に入らなかったら他の数値に直す */
typedef union {
/*略*/
long double ld;
} anytype;
typedef struct {
int code;
anytype a;
} status;
status access_array(int n, int mode, anytype a)
{
static anytype arrray[SIZE_OF_ARRAY];
int i; status s;
if (n < 0 || n >= SIZE_OF_ARRAY) {s.code = -1; return s;}
s.code = 0;
switch (mode) {
case 0:
for (i=0; i<SIZE_OF_ARRAY; i++)
array[i].ld = 0;/* long double 型がanytypeのメンバ内で最も大きい場合、自動的に全てのビットが0にセットされる */
break;
case 1: s.a = array[n]; break;
case 2: array[n] = a; break;
}
return s;
}
0383デフォルトの名無しさん
NGNGmain関数で残りメモリを参照して、少なかったら終了する。
残りメモリ参照にはポインタを使わない。
>>365
malloc と比べてそれほど多く考える必要はない。
>>367
二分法である必要はない。
0384デフォルトの名無しさん
NGNG初心者は、プログラムがmainからそのまま開始すると勘違いしてるんだよな。
0385デフォルトの名無しさん
NGNG自分で二分法出しといて二分法である必要ないと言われても。
0386デフォルトの名無しさん
NGNGどこからでもいいから、とにかく配列の定義がmainになくて、
関数を呼び出したときに初めて確保されるようになっていればいい。
処理系によっては WinMain から始まることもあるが、普通は main から始まる。
何段階呼び出した後でもかまわない。
そんなこといちいち断らなくても伝わると思ったからあえて言わなかっただけで、
そんなことは百も承知。
というか、本質的でないことにこだわり杉
>>385
二分法はあくまでも例。
最初の段階で、二分法あるいはニュートン法(この場合どうやって適用すればいいのか謎だが)、
もしくはその他の方法とか言ったら回りくどいから、二分法をひとつの例として出しただけ。
要は文句の出ない数値が一つ決まればいいだけで、その決め方は本質的ではない。
0387デフォルトの名無しさん
NGNGどうでもいいからmalloc作れ。話はそれからだ。できるまで来るな。
0388デフォルトの名無しさん
NGNG支持する
0389デフォルトの名無しさん
NGNG0390デフォルトの名無しさん
NGNGttp://pukapuka.s1.x-beat.com/img-box/img20040920215205.lzh
0391デフォルトの名無しさん
NGNG0392デフォルトの名無しさん
NGNG0393デフォルトの名無しさん
NGNG0394デフォルトの名無しさん
NGNG0395デフォルトの名無しさん
NGNG0396デフォルトの名無しさん
NGNGうpローダー気本。
0397デフォルトの名無しさん
NGNGttp://pukapuka.s1.x-beat.com/img-box/img20040920215205.lzh
0399デフォルトの名無しさん
NGNG0400デフォルトの名無しさん
NGNG0401デフォルトの名無しさん
NGNG[Ctrl] + F
0402デフォルトの名無しさん
NGNGもう一度聞く。
ポインタの話してるのになんでGCの話が出てくるんだ?
0403デフォルトの名無しさん
NGNG0405デフォルトの名無しさん
NGNG理由になっていない。
0406デフォルトの名無しさん
NGNG0407デフォルトの名無しさん
NGNGGCがあればポインタはすべて解決するんだよ、きっと。
0409デフォルトの名無しさん
NGNGお前自身の事ですか。あきれちまうな。
0410デフォルトの名無しさん
NGNG0412デフォルトの名無しさん
NGNGきちがいだ
0413デフォルトの名無しさん
NGNGポインタ使わずに
0415デフォルトの名無しさん
NGNG0416デフォルトの名無しさん
NGNG反論できなくなったら勢い無くなったな
0417デフォルトの名無しさん
NGNGそれはお前
0418デフォルトの名無しさん
NGNGこっちにはちゃんと答えがあって言っていることだ
はやくやってみろ
0419デフォルトの名無しさん
NGNG0420デフォルトの名無しさん
NGNGログ見るのが面倒だから見ないが
なにをやるんだ?
0421ハバネロ
NGNG0422デフォルトの名無しさん
NGNG0423デフォルトの名無しさん
NGNGやっぱり、mainやWinMainの前のことは考えられないんだ。
スタックも知らないみたいだしネタを語るには力が足りないよ。
ところで、「本質的」という言葉を好む奴にろくな奴はいないな。
0424デフォルトの名無しさん
NGNGポインタ抜きで malloc と GC 作って
ポインタが無用かどうか証明して見せろ
0425デフォルトの名無しさん
NGNGオレはそんな物つれないので、それが証明できる人に言ってくれ
0426デフォルトの名無しさん
NGNGこれから日本語で話していただいて結構ですから
0427デフォルトの名無しさん
NGNGmallocがポインタ返すのにポインタが無用だって?なんだそりゃ
0428デフォルトの名無しさん
NGNGお前ら本当に無駄な話し合いが好きだなw
0429デフォルトの名無しさん
NGNG0430デフォルトの名無しさん
NGNG0431デフォルトの名無しさん
NGNG頭は悪そうだが、ここでの善悪では善だ
0432デフォルトの名無しさん
NGNGまぁネタスレだし。
今回のネタはつまんないけど。
0433デフォルトの名無しさん
NGNG0434デフォルトの名無しさん
NGNG頭が悪ければ悪だろう。
0435297
NGNG0436デフォルトの名無しさん
NGNGおー厳しいな
0437デフォルトの名無しさん
NGNG偽者は黙ってろ
0438デフォルトの名無しさん
NGNG0439デフォルトの名無しさん
NGNGかわいそうだよ。
お前たち、おやめ!
0440デフォルトの名無しさん
NGNGかわいそうには思えないな。
0441デフォルトの名無しさん
NGNG0442デフォルトの名無しさん
NGNG0443デフォルトの名無しさん
NGNGポインタを一切使う必要がない。実装は時間の問題。
デバッグの時間も考えて、明日までには完成する。
ポインタレスmallocが完成した時点で、ポインタの存在意義は消える。
極論を言えば、全ての関数をポインタレスmallocに対応させることで、
全ての関数からポインタを排除することが可能になる。
0444デフォルトの名無しさん
NGNG0445デフォルトの名無しさん
NGNGポインタ=mallocが返すもの
と勝手に定義されちゃってるし。
0446デフォルトの名無しさん
NGNG時間の無駄だから止めとけ。
0447デフォルトの名無しさん
NGNG0448デフォルトの名無しさん
NGNGポインタ排除=配列排除だよな。
0449デフォルトの名無しさん
NGNG0450デフォルトの名無しさん
NGNG>>423
だから、main 以外の関数内部にstaticで配列を確保すれば、
その関数funcを呼び出す以前の煩雑な処理は一切考える必要はない。
funcを呼び出す以前のことは、たとえmain関数のことであっても知る必要がない。
スタック領域が最初に確保されるのは、グローバル変数とmain関数内の変数のみ。
>>444
関数内部にstaticで保持し、引数によって読み書き出来るようにする。
0451デフォルトの名無しさん
NGNG1つの関数の内部に配列を保持し、引数を適当に与えることで自由にアクセスできるようにすれば、
配列の引渡しをする必要がない。
0452デフォルトの名無しさん
NGNGmalloc使った方が、普通に便利だ
0454デフォルトの名無しさん
NGNGプログラム書いたこと無いのバレバレ。
それとも、具体的なプログラムは本質的ではないのかな?
0455デフォルトの名無しさん
NGNGC言語でありながらカプセル化が可能で、しかも常に引数チェックをするので
不正なメモリアクセスやメモリエラーを起こすことがない。
セキュリティーホールになりかねないmallocより数倍マシ。
0456デフォルトの名無しさん
NGNGこっちでやれよ
0457デフォルトの名無しさん
NGNGC言語でちゃんと実務的なプログラムを書いたことがありますが何か?
で、まだ呼び出していない関数内部の配列の大きさが問題になるプログラムってどこにあるの?
0458デフォルトの名無しさん
NGNG気の済むまで自分の世界の中でやってりゃ良い。
0459デフォルトの名無しさん
NGNG想像で語ってないで、実際に書いてみたら?
0460デフォルトの名無しさん
NGNG何も問題が起こりませんが何か?
0461デフォルトの名無しさん
NGNG問題起こりましたが、何か?
0462デフォルトの名無しさん
NGNG0463デフォルトの名無しさん
NGNG#include <limits.h>
void func(void)
{
static int array[INT_MAX];
array[0]=1;
}
int main(int argc, char** argv)
{
if (0) func();
printf("Hello, world.\n");
return 0;
}
さあ、問題を起こせるもんなら起こして下さい。
0464デフォルトの名無しさん
NGNGそもそもコンパイルできないけど、配列の大きさを小さくしても
Segmentation fault (core dumped)
だね。
0465デフォルトの名無しさん
NGNG0466デフォルトの名無しさん
NGNGこれポインタと同義
0467デフォルトの名無しさん
NGNGんなこたぁない。
0468デフォルトの名無しさん
NGNG0469デフォルトの名無しさん
NGNG配列の大きさを1にしてもエラーになるんだったら、コンパイラに欠陥があります。
最新版をインストールしましょう。
0470デフォルトの名無しさん
NGNG0471デフォルトの名無しさん
NGNG0472デフォルトの名無しさん
NGNG0473デフォルトの名無しさん
NGNG343 :デフォルトの名無しさん :04/09/20 19:05:56
>339
ポインタ
と
ポインタが指している領域
と
(ある領域に)格納されている値
について小一時間勉強しなさい。
たぶん make_file_name( ) を呼び出している所のパラメータに問題あり。
0474デフォルトの名無しさん
NGNGarray[1] も変数だよね?
じゃあ array は何?(´・ω・`)
0475デフォルトの名無しさん
NGNG0476デフォルトの名無しさん
NGNGarray は配列か配列の先頭へのポインタかどっちかだろ
0477デフォルトの名無しさん
NGNG473(343)の"ある領域"って、ポインタが刺している領域の事なのでは?
0478デフォルトの名無しさん
NGNGポインタは刺さない。今時刺すのはNEVADAくらいなもんで。
0479デフォルトの名無しさん
NGNGarrayは>>463の場合int[INT_MAX]型。
ただし、配列は知っての通り式の中ではポインタにされてint *型になる。
&arrayの結果の型はint (*)[INT_MAX]になるなど例外もあるが。
0480デフォルトの名無しさん
NGNGいえ〜い
0481デフォルトの名無しさん
NGNGttp://pukapuka.s1.x-beat.com/img-box/img20040920215205.lzh
0482デフォルトの名無しさん
NGNGarray[0] = *(array + 0)
array = const ポインタ
0484デフォルトの名無しさん
NGNGint func(int data, int n, int mode) {
int a0, a1, a2, a3, a4, (ry
if (mode == 1) {
switch (n) {
case 0: return a0;
case 1: return a1;
case 2: return a2;
・・・・・
}
} else if (mode == 2) {
switch (n) {
case 0: a0 = data; break;
case 1: a1 = data; break;
case 2: a2 = data; break;
・・・・・
}
}
return 0;
}
とすればいい。
0485デフォルトの名無しさん
NGNG0486デフォルトの名無しさん
NGNG#ってどんな効果かググっても見つかりませんでした
0487デフォルトの名無しさん
NGNG0488デフォルトの名無しさん
NGNGcに#という文字が入ってるかどうかってだけ
0489デフォルトの名無しさん
NGNGtypedef struct _LIST{
struct _LIST* p_next;
char data;
}LIST;
int main(void)
{
LIST hoge[3];
LIST* test_p;
LIST* obj;
test_p =& hoge[0];
hoge[0].p_next =& hoge[1];
hoge[1].p_next =& hoge[2];
hoge[0].data = 0;
hoge[1].data = 1;
hoge[2].data = 2;
obj = (LIST*)(*test_p);//ここでエラーが発生
printf("%p\n",&hoge[0]);
printf("%p\n",test_p);
printf("%p\n",*test_p);
return 0;
}
すみません、以上のようなプログラムがあった時、なんとかアロー演算子を使わずに
hoge[0]->p_nextのアドレスを obj に入れる事は出来ないでしょうか?
ご教授オネガイシマス。
0490489
NGNGやはり無理でしょうか・・・
0491デフォルトの名無しさん
NGNG>int a0, a1, a2, a3, a4, (ry
は、
static int a0, a1, a2, a3, a4, (ry
の間違い。
0492デフォルトの名無しさん
NGNGttp://pukapuka.s1.x-beat.com/img-box/img20040921084521.lzh
0493デフォルトの名無しさん
NGNGobj = *(LIST**)(test_p);
0494489
NGNGまじすごいっす!
漏れこれで昨日一日悩んでました。
ありがとうございます"(ノ_・、)
0495デフォルトの名無しさん
NGNG意味のない宿題が流行ってるのかねぇ。
0496331
NGNGmalloc()したfieldとfile_nameをfree()するときに
落ちているみたいでした。これってどういうことなんでしょう?
ともあれ原因は特定できました。レス下さった方本当にありがとうございます。
0497デフォルトの名無しさん
NGNGなら放っておけば終了時に自動的に解放されるので明示的に
freeしなくても良いと書いてあるのですが、先日ある雑誌を
見ると明示的にfreeしないとメモリーリークになると書かれ
ていました。どちらが正しいのでしょうか。
0498デフォルトの名無しさん
NGNG過去ログを参照してください。語り尽くされていますから。
0499デフォルトの名無しさん
NGNG環境依存です。
開放するOSもあればメモリリークするOSもあります。
だから、環境依存しないコーディングをするのなら、きちんとfreeしないと
いけませんし、
たとえ、放っておいても開放してくれるとしても、freeするのはマナーです。
freeが面倒ならC言語に似ている言語であればD言語やJava言語のような
ガベジコレクション付きの言語を使えばよろしい。
0500Ruby最強!!!!
NGNGその子は最初見た時は(少し遊んでるのかな?)って感じの子だったけど、
挨拶はしっかりしてて、客が呼び出しランプを付けるとすぐに駆けつけて
笑顔で接客する子だった。重そうなコインも頑張って運んで、たくさん出した
人には「おめでとうございます。たくさん出て、良かったですね。^^」って
言ってくれる子です。
オレが何度か通ううちに相手も覚えてくれたようで少しずつ話すようになり、
店でオレを見つけると「あっ」て感じの顔をして笑顔で会釈してくれるようになった。
コイン補給を頼む時や換金する時も、オレの時は必ずその子が来てくれて
「今日もたくさん出てますねっ。良いなぁ^^」って言ってくれて、明らかに他の客とは
違う態度で接してくれるようになった。オレもだんだんその子が気になるように
なって、その子に会いたくてホールに通うようになった。
0501Ruby最強!!!!
NGNG「今日も来てくれたんですかぁ〜」って言ってきたので
「いや〜お姉さんに会いたかったから、来ちゃいました^^;」と冗談まじりで返した。
すると彼女は一瞬ビックリした顔をしたが、みるみる顔が赤くなっていき
「私も・・○○さん(オレの名)が来てくれると嬉しいですよっ」と照れながらも言ってくれた。
普段から気になってたオレは凄く嬉しくて舞い上がってしまった。
いつか絶対誘おうと思っていたのだが、気が弱いオレはそれを言い出せず、
ただそのホールに通う事しか出来ず、そんな状態がしばらく続いた。
ある日、オレがいつものように行くと、彼女の姿が無い。(いつもはこの時間は
必ず入っているはずなのにな・・・・何か用事かな?)と思っていたが、
次の日も、2日後にも彼女はいなかった。オレは気になって仕方なかったので、
他の店員に聞いてみると、「あ〜あの子なら先週やめましたよ」と返ってきた。
0502Ruby最強!!!!
NGNGなんだかもうその店に通う気力が無くなり、いつしか行かなくなってしまった。
そして一ヶ月後・・ドライブしてたオレは家の近くで偶然彼女を見つけた。
その子は歩道を歩いていて、コンビニに入っていった。「あの子だ!!」
オレは焦ってUターンしてそのコンビニに止めると、車の中から彼女の様子を
うかがった。彼女は立ち読みをしている。オレは意を決して店に入り、
思い切って声を掛けてみた。「こんにちは。」
彼女は驚いてオレの方を見た。オレは(覚えていてくれなかったらどうしよう・・。)
と声を掛けた後で後悔したが、彼女はオレの事を覚えていたらしく、すぐに
「あ〜っ、○○さん!!久しぶりです!」と言ってくれた。
良かった・・覚えていてくれた・・。 オレがホッとしていると、
「この近くに住んでたんですか?知らなかった〜。会えたら良いな〜って思ってたんですよ」
と彼女は言った。続けて、「今ヒマですか?良かったらちょっと遊びません?」
と言った。オレはこのおいしい展開にとまどいつつも、「じゃあオレんち来る?」と
聞いてみた。彼女は一瞬考えたような顔をしたが、照れながらも「はい・・。」
と答えた。
0503Ruby最強!!!!
NGNGオレはもう我慢できずに彼女を抱き寄せた。彼女は抵抗せず、オレに
体を預けた。「良い・・?」と聞くと彼女はオレの顔は見ずに黙ってうなずいた。
彼女の服をゆっくりと脱がし、彼女の胸にキスをすると、彼女は可愛い吐息を
上げてオレを挑発した。オレは野獣のように彼女の体を堪能し、
その日はずっと抱き合って寝た。
目が覚めると彼女は隣におらず、オレは夢だったのか?と思って一瞬落ち込んだ。
顔を洗おうと台所に行くと、彼女は・・・いた。「おはよう。ずい分寝てたね」と言い、
それを聞いたオレは(ああ・・夢じゃなかったんだ・・)となんだかとても嬉しかった。
彼女は、「これからも・・よろしくね・・」とはにかみながら言った。
そんなシチュエーションのAVはありますか?とオレがビデオ屋で聞くと、
無精髭を生やしたイカツイ店長は、にこやかにオレの肩に手を乗せ「帰れよ」と言った。
0504デフォルトの名無しさん
NGNG0505デフォルトの名無しさん
NGNGあなたの対処は正しいと言える。が、一方で
>>499
>たとえ、放っておいても開放してくれるとしても、freeするのはマナーです。
こういう俺マナーを押し付ける奴がいると
>>497 は過去ログなんか読まず信じちゃうんじゃないか、と危惧したりもする。
0506デフォルトの名無しさん
NGNG〜略〜
printf("%-6s",moji[10])
〜略〜
の『-6』の意味を教えてください。
0507Ruby最強!!!!
NGNG0508デフォルトの名無しさん
NGNG0509506
NGNGスマンカッタ、ありがとう。
0510デフォルトの名無しさん
NGNG12
123
1234
12345
123456
1234567
0511デフォルトの名無しさん
NGNG0512デフォルトの名無しさん
NGNG低脳。
0513デフォルトの名無しさん
NGNG低脳のフリをするのが情報隠蔽だ。
それがわからん奴が真の低脳だ。
0514デフォルトの名無しさん
NGNG0515デフォルトの名無しさん
NGNG0516デフォルトの名無しさん
NGNG90515レスも読めるか!
0517デフォルトの名無しさん
NGNGこのスレだけでも10万近いレスを、みんなが集まって書いたんだなあ。
2ch全体だけでも、途方もない数の言葉が集まったんだろうな。
なあ、もし、漏れたちみんなで力を合わせたらさ、
('A`)ノ なんでもない。
0518デフォルトの名無しさん
NGNG0519デフォルトの名無しさん
NGNG0520デフォルトの名無しさん
NGNG0521デフォルトの名無しさん
NGNGおまえ、もう要らない。
0522デフォルトの名無しさん
NGNGfree(>>521);
0523デフォルトの名無しさん
NGNGあれと、普通の関数の違いがわかりません。
普通の関数
呼び出しと同時に
スタックに領域作成
関数ポインタ
作成した瞬間に
スタックに領域作成?
こんなんでもう6年もコーダーやってます。
はぁ・・・
0524デフォルトの名無しさん
NGNG0525デフォルトの名無しさん
NGNG何がおかしいんでしょうか?
0526デフォルトの名無しさん
NGNG関数ポインタ
関数のアドレスを入れる、ただの変数
0527デフォルトの名無しさん
NGNGNULLが帰ってきた後にperror実行してみたら?
0529デフォルトの名無しさん
NGNG0530523
NGNGでしたら、アクセス?だけで
関数ポインタって利用されてるんですか?
利用の意義がまったく見出せません。
仕事向いてないのかな・・・
ハァ・・・
0531デフォルトの名無しさん
NGNG0532523
NGNGこれだけの為かorz
0533デフォルトの名無しさん
NGNG0534デフォルトの名無しさん
NGNGすぞ>関数ぽいんた
0535523
NGNG0536デフォルトの名無しさん
NGNG0537デフォルトの名無しさん
NGNG0538デフォルトの名無しさん
NGNG6年もやってて?マジで?
ある意味すごいな
0539デフォルトの名無しさん
NGNG変数の内容によって、飛び先変えれるとか・・・
int FuncA(int n);
int FuncB(int n);
int FuncC(int n);
int main(void){
int (*hoge[3]) = {FuncA, FuncB, FuncC};
int a, b, n;
n = 0;
a = hoge[n](b); //FuncA
n = 2;
a = hoge[n](b); //FuncC
0540539
NGNG0541デフォルトの名無しさん
NGNGそういうのはあんまり本質的じゃないな。swich使ってもあまり変わらんし
0542デフォルトの名無しさん
NGNG#include<stdlib.h>
int main(void)
{
char *s;
while(1){
s = malloc( sizeof(char)*20 );
if(s==NULL){
fprintf(stderr,"メモリ確保ミス\n");
exit(1);
}
printf("%d\n",sizeof(s));
fgets(s,sizeof(s),stdin);
printf("%s\n",s);
free (s);
}
return 0;
}
mallocをつかってずーっと文字を入力させていっては表示させるプログラムを作りたいのですが、
s = malloc( sizeof(char)*20 );
でs[20]みたいな感じにはならないのでしょうか?
3文字入力したら改行が施されてうまくいきません。
そこでsizeof(s)をみると4となることまでは確認できました。
0543デフォルトの名無しさん
NGNGswitchと違って、関数を呼び出す側が詳細を知らなくてもいい
という点が大きく違うな。
0544デフォルトの名無しさん
NGNGsはポインタだ。
> そこでsizeof(s)をみると4となることまでは確認できました。
ポインタの大きさが4バイトということだろう。
0545523
NGNG私がお聞きたいのは関数ポインタの利点です。
特筆べき利点です。
>switchと違って、関数を呼び出す側が詳細を知らなくてもいい
通常の関数でも引数に△いれれば■が戻り値ですとコメント書いておけば
同じようなもんですよね?
アクセスが早いとか、無駄な領域割かなくていいとかは
ないんですか?
0546デフォルトの名無しさん
NGNG君のレベルでは、そのようなことを気にする必要はない。
0549デフォルトの名無しさん
NGNGライブラリとして提供するとする。
それで利用者に関数を用意させる必要がある(qsortのように)とき
どうするんだ?
0550548
NGNG548のことはスルーしてください。
0551デフォルトの名無しさん
NGNGパフォーマンス上の利点はほとんど無いだろう。
タイトループの中での switchよりは速くなるかも知れないけど。
主な利点は、設計が楽になる可能性があること。
0552523
NGNGint _tmain(int argc, _TCHAR* argv[])
{
char *s,*t;
while(1){
s = (char *)malloc( sizeof(char)*100 );
if(s==NULL){
fprintf(stderr,"メモリ確保ミス\n");
exit(1);
}
printf("%d\n",sizeof(s));
fgets(s,100,stdin);
t = s;
printf("%s\n",e);
free (s);
}
return 0;
}
動けばいいの?
解説いるの?
0553デフォルトの名無しさん
NGNG0554523
NGNG関数ポインタ場合により有用になるってことですか。
んむむむ
0555デフォルトの名無しさん
NGNG0556デフォルトの名無しさん
NGNGナイスな例よろ
0557デフォルトの名無しさん
NGNGint func_a(void) {
:
:
}
int func_b(void) {
:
:
}
だとして、
static int (*ftable[])(void) = {
func_a,
func_b,
func_b,
func_a,
};
int state, ret;
:
:
ret = ftable[state]();
とか。
0558523
NGNG変な変数が存在してます。ごみんなさい。
0559デフォルトの名無しさん
NGNGstatic struct {
char ch;
int (*func)(void);
} ctable[] = {
{'*', func_a},
{'+', func_b},
};
#define numberof(v) (sizeof (v) / sizeof *(v))
char symbol;
int ret;
:
:
for (int i=0; i<numberof(ctable); i++)
if (symbol == ctable[i].ch)
ctable[i].func();
とか。
0560デフォルトの名無しさん
NGNGテーブルじゃなくても switch 文で実現できるから本質的でないん
だって(保守性の問題とかはあるにしても)。
問題は汎用的なデータを扱うライブラリ(Hash Table とか)を作る
とき。ライブラリ作る時点では、(ライブラリの)ユーザがどんなデータ
を入れるか分からんから、データに依存する部分の処理はユーザ
が自分で関数書いて渡せるようにするの。
0561デフォルトの名無しさん
NGNGsage() { }
main()
{
auto (*age)() = sage;
sage();
age();
printf("%u", sizeof sage);
printf("%u", sizeof age);
sage++;
age++;
}
1行ずつ、結果について考察してみれ。
0562デフォルトの名無しさん
NGNG関数ポインタ(* increment)()をつくっといて
object->increment();
みたいなことをしたらobject(構造体)の特定のレコードの値を変更させることはできますか?
もしできるんならどう書けばいいんでしょう?
object->increment(object);
だったらできるんだけど、なんかカコワルイ。。
0563デフォルトの名無しさん
NGNGhttp://pukapuka.s1.x-beat.com/img-box/img20040922204002.lzh
0564デフォルトの名無しさん
NGNG(関数ポインタで実行される)関数にレコードへのポインタが与えられていないので出来ません。
どうしてもやりたいのなら、レコードをグローバル変数にするか、C++を使いましょう。
0565デフォルトの名無しさん
NGNG受け側でうまく処理できません。
strudt A {....}
struct A AST[10][10]; ここで sturuct A** として渡しますが
受け側では同じプロトタイプで受けてるにも関わらずArg[n]のアドレスが
オカシイのです。
0566デフォルトの名無しさん
NGNG[] と * を同一視したがるパラダイムが見当違い
[10][10] を ** では受け取っても正しく処理できない
struct A a[10][10];
main()
{
f(a);
}
f(x)
struct A **x;
{
printf("%p", &a[0][0]);
printf("%p", &a[0][1]);
printf("%p", &a[1][0]);
printf("%p", &x[0][0]);
printf("%p", &x[0][1]);
printf("%p", &x[1][0]);
}
1行ずつ、結果について考察してみれ。
0567565
NGNGまだ考察はしてませんが、コードには[ ]ばかりでなくキャストに
sizeof、考えられる手段を試してみましたがどうも腑に落ちません。
というのも、ある値が文脈でアドレスと見なされた場合、それに加算される
数値は(インクリメントは当然としてsizeofで計算した値も)正確な
アドレスとして評価される筈です。
0568デフォルトの名無しさん
NGNGその「正確なアドレス」を正確な日本語で言ってみろ
0569デフォルトの名無しさん
NGNG0570565
NGNGその「正確なアドレス」とは、「アドレスと見なされる値」からの
型として設定される値のオフセットで計算される、でよろしいですか。
0571デフォルトの名無しさん
NGNGやっぱり無理なんですね。
ありがとう。
0572デフォルトの名無しさん
NGNG値から型はとれない。ポインタには値しか格納できない。
だから x は 10 に従わない。
0573565
NGNGわかるようなキモしますが、だからこそ、といか、そもそも型がわからない
コードはコンパイルを通らないですよね。そこで上位のアドレスを型変換
した場合にデフォで型を継承してもらわない事には話しにならないと思うのは
私だけでしょうか。
0574デフォルトの名無しさん
NGNGとして渡せ。
0575デフォルトの名無しさん
NGNG更新されてるようなのになんでいまだにvoid main()とか書くの?
0576デフォルトの名無しさん
NGNG0577デフォルトの名無しさん
NGNG{
foo に文字列などを入れる処理
}
main()
{
char buf[128];
hoge(buf);
printf("%s", buf);
}
このようなコードでbufのサイズが50のときはうまく表示、100の時は変な文字記号がまじる、
200の時はうまく表示、1000の時は変な文字記号が・・・の様なことがおこります。
悩んだ末、ふと static char buf[128]; のようにしたところ常にうまく表示されるようになりました。
staticで確保しないとメモリがアヒャヒャなことになるという結論に達したのですが、どうもすっきりしません。
これってプログラムを書く上で当たり前のことなのでしょうか?どなたかバッサリヤってください。
0578デフォルトの名無しさん
NGNGマシンはちゃんとアヒャってるんだが
おまいもしっかりアヒャってるんで、気が付かない・・・
わかりる? この相対性理論
0579デフォルトの名無しさん
NGNGvoid で無問題な処理系だから
0580デフォルトの名無しさん
NGNG常識
0582デフォルトの名無しさん
NGNGこいういのがお好き?
#include <stdio.h>
struct ABC{
int a;
int b;
};
void disp(void *s){
printf("%d \n", (*(ABC (*)[5][10])s)[4][5].b );
}
int main(void){
ABC s[5][10];
s[4][5].b = 3;
disp(s);
return 0;
}
0583デフォルトの名無しさん
NGNGからけ嫁
0584デフォルトの名無しさん
NGNG文字列の最後に'\0'いれてる?
0585デフォルトの名無しさん
NGNG文字は半角、全角まざっててもいいし、いろいろです。
こういった種類の文字列が複数あって
ソートしたいとします。
qsortでソートしたかったのですが
比較関数でstrcmpを使うと、うまくソートできません
原因はstrcmpが半角にしか通用しないからです。
どのようにすればいいのでしょうか?
助言おねがいします。
0586デフォルトの名無しさん
NGNG比較関数を作る
0587デフォルトの名無しさん
NGNGどういう基準でソートしたいかによる。
文字コードで比較したいのなら strcmp で十分のはず。
ア→ア→イ→イ→・・・・
などの順序でソートしたいのなら、>>586にあるように比較関数を作るしかない。
そのためには、漢字コードの表などを使って、自分で比較関数を作るしかない。
0588デフォルトの名無しさん
NGNG単純な加算のループをそれぞれ実行してみると64bitの方が2倍近く遅くなっていました。
Pentium系列の32bitCPUだと64bitの演算は32bitの演算と比べると低速なんだと思いますが、
なんとか64bitの演算を高速(32bit演算並)に実行できないものでしょうか?
VC++6.0 SP6でCPUはPen4を使っています。
0589デフォルトの名無しさん
NGNG0590デフォルトの名無しさん
NGNGスレ違い
0591デフォルトの名無しさん
NGNGアセンブラの経験はないのですがこれを機に勉強してみます。
>>590
Cのコードを最適化している過程でこの問題にぶつかったので、
この板で質問してみたのですが、こういう話題はアセンブラの話になるのでしょうか・・・。
0592デフォルトの名無しさん
NGNGint a[4][5];
int (*p)[4][5];
p = &a;
×(コンパイルエラー)
int a[4][5];
int (*p)[4][5];
p = a;
ここまでは理解できるのですが、
○
int a[4][5];
int (*p)[5];
p = a;
↑
これが通る理由が良く分かりません・・・
0593デフォルトの名無しさん
NGNGtypedefでもして試せば一目瞭然の気もするが。
最後の例は、
aはintが5個の配列が4個並んだ配列で、
pはintが5個の配列へのポインタ。
言い換えれば、
aはある型のオブジェクトが4個並んだ配列で、
pはその型へのポインタ。
ある型が仮にcharなら、char a[4]; char *p; p = a; となり、
いくらなんでもこれはお馴染みだろう。
たまたま型が配列だっただけなのだよ。
0594デフォルトの名無しさん
NGNGわかりました!
0595デフォルトの名無しさん
NGNGビットとかって、実際に仕事で頻繁に使うものなんでしょうか??
使うとしたら、どういったところで使用するのでしょうか??
できれば、初心者にわかるような解説をお願いします。
0596デフォルトの名無しさん
NGNG画像処理とか音声処理とかセンサー読んだりフラグ入れたり色々。
0597デフォルトの名無しさん
NGNGなるほどなるほど。計算なんかで使用することってありますか?
0598デフォルトの名無しさん
NGNGビットを操作する計算なら使用するだろ。
0599デフォルトの名無しさん
NGNG0600デフォルトの名無しさん
NGNGお答え頂き、ありがとうございました☆
勉強になりました!
0601デフォルトの名無しさん
NGNGC++勉強しな。そういうこともできるぞ。
0602デフォルトの名無しさん
NGNG整数xを入力し、xを8倍するプログラムを乗用演算子を
用いずにつくる場合はどんな風にすればいいんですか?
0603Ruby最強!!!!
NGNG0604デフォルトの名無しさん
NGNGやっぱりそれでいいんですね。10倍なら<<4
でいいんでしょうか?
0605デフォルトの名無しさん
NGNGx=x+x+x+x+x+x+x+x;
0606デフォルトの名無しさん
NGNGいいかどうかは実際に確かめてみれば分かるだろ。
0607デフォルトの名無しさん
NGNGfor(int i=1;i<=8;i++)
x +=x;
return x;
}
0608デフォルトの名無しさん
NGNG0609デフォルトの名無しさん
NGNG0610デフォルトの名無しさん
NGNGおまえはそんなにRubyの評価を落としたいのか?
0612デフォルトの名無しさん
NGNGx = x<<3 + x<<1
0613デフォルトの名無しさん
NGNGありがとうございます。
0614デフォルトの名無しさん
NGNG0615デフォルトの名無しさん
NGNGsprintf(buf, "%d0", x);
x = atoi(buf);
0616デフォルトの名無しさん
NGNGをしたとき文字列の連結は成功するのですが
fooの示す文字列が2バイト左にずれてしまいます。
foo自身の値がインクリメントされているわけでもないようです。
どなたか指導お願いします。
0617デフォルトの名無しさん
NGNGhogeに十分な空きが無いんだろう。
0619デフォルトの名無しさん
NGNGchar foo[5] = "foo";
strcat(hoge, foo);
メモリ上のイメージ(0…終端コード, ?…不定値)
[a][i][u][e][o][0][?][t][e][s][t][0]
↓strcat
[a][i][u][e][o][t][e][s][t][0][0][0]
↑hoge ↑foo
0620デフォルトの名無しさん
NGNG0621616
NGNGうおおぉぉ!感動!
なるほど、この場合hoge[]とhoo[]が
偶然近い位置に配置されていたということも
原因に挙げられますよね。
というか変数の宣言ではそのように配置されてしまうものなのかな?
ちょっと調べてきます。
本当にありがとうございます!
0622デフォルトの名無しさん
NGNGありがとう。
オライリーから出てるC++プログラミング入門が良さそうなんで
それでも読んでみます。
0623デフォルトの名無しさん
NGNGそれとも関数マクロでしょうか?
if(function(x)){
printf("Function is Success\n");
}else{
printf("Function is Failed\n");
function_error_process();
}
0624デフォルトの名無しさん
NGNG0625デフォルトの名無しさん
NGNG頻出なら関数、一度しか出てこないならそのまま。
関数マクロは副作用があるから使わない方が良い。
0626デフォルトの名無しさん
NGNGあまりに頻出で定型なら
functionとfunction_error_processのアドレスを受け取って処理するとか。
0627デフォルトの名無しさん
NGNGint main() {
for (int i=0; i<10; i++) puts("test");
return 0;
}
とすると
error: `for' loop initial declaration used outside C99 mode
なメッセージがでるよ??
0628デフォルトの名無しさん
NGNGで十分だろ
0629デフォルトの名無しさん
NGNG0630デフォルトの名無しさん
NGNG0631デフォルトの名無しさん
NGNG__VA_ARGS_の機能使ったときはコンパイルで何も文句いわれなかったから
気づかなかったけど、C99使うときはgcc -std=c99 hoge.cなんてするんだな。
0632デフォルトの名無しさん
NGNG0633Ruby最強!!!!
NGNG0634デフォルトの名無しさん
NGNG0635デフォルトの名無しさん
NGNG面接にいった・・俺はCをたしなむんだが、普通に基礎をマスタしてるぐらいだが
しかし、いきなり適正検査をしますと・・だされた問題はもろ昔の算数
Aさんは時速なんとかBさんはなんとか距離はいくらとか
Aの濃度は%Bの濃度は%とか、こんな問題が延々と一時間やらされた
はっきりいってまったくできなく残念ですが、Eです
今回は採用をみなおしますといわれた
あ??やるき重視じゃねーのかボケ。。余計な時間とらせやがって
社長がまたいやな感じのやつでよ・・ほんとにあの適正検査ってやつは
あてになるのか俺は理系じゃないが、時間をかけたらアルゴリズムとかも
理解できるとおもってる。。あ???
理系のやつのみってかけやボケが・・・とメールでおくってやった
0636デフォルトの名無しさん
NGNG文型なのに酷い文章だな。
0637デフォルトの名無しさん
NGNG0638デフォルトの名無しさん
NGNG0639デフォルトの名無しさん
NGNG0640デフォルトの名無しさん
NGNG0641デフォルトの名無しさん
NGNG0642デフォルトの名無しさん
NGNG0643デフォルトの名無しさん
NGNGint main()
{
puts("Hello, world!");
return 0;
}
0644デフォルトの名無しさん
NGNGオマエは世間を知らなさ杉
母数をでかくするのは募集側が当然考えること
母数がでかければオマエより魅力的な奴もそれだけ増える
極めつけは試験の意図がオマエにはわからなかった
それで通ったら却って薄気味悪い
0645デフォルトの名無しさん
NGNGスレッド違いで失礼だが、お願いしたい。
↓
迷惑ですからやめてください
↓
そもそもソースおかしいぞ
↓
君たちは冷たいね・・・・・。
......底抜けのバカか?
http://security.ten.thebbs.jp/1093151279/
http://security.ten.thebbs.jp/1094827887/
0646デフォルトの名無しさん
NGNG0647デフォルトの名無しさん
NGNG0648デフォルトの名無しさん
NGNGgccでsyntax error at end of inputだけが出るけど何所が間違っているかわからん。
0649Ruby最強!!!!
NGNG0650デフォルトの名無しさん
NGNG英語の辞書買うほうが先だ
0651648
NGNG具体的に何が間違っているのかがわからない。
ので、親切にどう間違っているのか教えてくれるツールがないかなと思ったしだいです。
0652デフォルトの名無しさん
NGNG言葉の意味、わかってないんじゃん。
0653648
NGNG$ gcc a.c b.c -Wall
a.c: In function `main':
a.c:225: error: syntax error at end of input
a.c
221 free(buf);
222 fclose(fp);
223 return EXIT_SUCCESS;
224 }
225
これで入力の終わりに構文エラーだと意味がわからないので
正確な意味を教えてください。
0654デフォルトの名無しさん
NGNGif((fp=fopen("txt","w"))==NULL){…
という風にエラーチェックしてるんですが、これって普通なんでしょうか?
0655デフォルトの名無しさん
NGNGソースがそれだけでは解からないよ。
;の付け忘れとかよくあるけど…
0656デフォルトの名無しさん
NGNGエラーチェックしなかったらファイルオープンできたかどうか分からないじゃん。
0657デフォルトの名無しさん
NGNGエラーが考えられる場所ではエラーチェックするのが普通です。
たとえば、txtというファイルが無い場合はfpを使った処理がうまくいきません。
0658デフォルトの名無しさん
NGNG普通
0659デフォルトの名無しさん
NGNGgcc は知らんが、{ と } の不整合とか?
0660デフォルトの名無しさん
NGNGlintとかあるけど、色表示してくれるエディタ使ったほうが早いと思うよ。
あとは変なところに全角スペースが入ってるとか。
0662デフォルトの名無しさん
NGNG入力の終わりに構文エラーだからって、原因が入力の終わりにあるとは限らない。
エラーが露呈したのが入力の終わりなのであって、原因はもっと前にあることが多い。
0663デフォルトの名無しさん
NGNGまあすぐに終わりにシンタクスエラーがあるんじゃなくて、
終わりでエラーになったと分かるけど。めったにないけど、
これがでるとifなんかを全部みなおさなきゃならんので
ちょっといらっとくる。
0664デフォルトの名無しさん
NGNG変数って、プログラム書いてるうちに必要に応じて増やすもんなんですか?
それとも、使う変数は最初から考えておくんですか?
0665デフォルトの名無しさん
NGNG>>663
自動整形機能のあるエディタ使ってないの?
0666デフォルトの名無しさん
NGNGそりゃもちろん必要に応じて使うものだが・・
0667デフォルトの名無しさん
NGNG0668デフォルトの名無しさん
NGNGCはとくにだが、ブロックの頭でまとめて宣言することが多い。それだけ
0669デフォルトの名無しさん
NGNGつーかふつうブロックの先頭でしか宣言できんやろ。
0670デフォルトの名無しさん
NGNG# 含蓄あるな・・・
0671デフォルトの名無しさん
NGNG0672デフォルトの名無しさん
NGNG0673デフォルトの名無しさん
NGNG教則本に則って、ギコ、モナー、ジエンの成績を入力し、合計と平(ry
というプログラムを書いてみたのですが、while()だらけになっちゃいました。
これは格好悪いかな?
初歩はこんなもんかなのな?
0674デフォルトの名無しさん
NGNGだらけの程度にもよる
0675デフォルトの名無しさん
NGNGだからってfor()にすんなよ
0677デフォルトの名無しさん
NGNG処理毎にです。
配列使って、出来るだけ簡潔にしようとしたら大変なことに。
0678Ruby最強!!!!
NGNG0680デフォルトの名無しさん
NGNGはっきりいって、大学入試のほうが簡単だったぞ・・・
まじで・・・ちなみに俺のいってた大学は中の上の文学部だ
あんなのは解けん・・・
0681デフォルトの名無しさん
NGNG文系の中でもド底辺じゃんw
0682デフォルトの名無しさん
NGNG算数じゃない数学力は超重要
大学出ててこれわかんねーやつ悲惨すぎ
0683デフォルトの名無しさん
NGNG0684デフォルトの名無しさん
NGNG解けない問題に直面したときの対応の仕方を観察させてもらういいチャンスな訳です。
#こっちはお茶してられるしね。
解ける能力があるならよし。対処できる能力があるならそれはそれでよし。
#>635の件もそうなのかは知らんが。
0685デフォルトの名無しさん
NGNGここまで徹底している奴も珍しいw
0686デフォルトの名無しさん
NGNG大卒って言ったら中学までのことは完璧に出来ないと「マジ?」って思われるよ。
0687デフォルトの名無しさん
NGNGでもやりたいんです!!僕はHSPでブロック崩し(アルカノイド)
ぐらいなら作ったことあります。
今のところ、オープニングまで作ったのですが、どなたか僕に
Cの基礎からすべてを叩き込んでくれませんか??
お願いします。
0688デフォルトの名無しさん
NGNG0689デフォルトの名無しさん
NGNG0690デフォルトの名無しさん
NGNG人月あたり100万からだねー
0691デフォルトの名無しさん
NGNGが何言ってるのかわかりません。
誰か訳して頂けないでしょうか?
ついでに池沼ってどういう意味ですか?
0692デフォルトの名無しさん
NGNG○○社の池沼社長のことです。
0693デフォルトの名無しさん
NGNGよくわからんけど、小学校からやり直したほうがいいのでは?
0694デフォルトの名無しさん
NGNG0695デフォルトの名無しさん
NGNG0696デフォルトの名無しさん
NGNG0697デフォルトの名無しさん
NGNG0698デフォルトの名無しさん
NGNGその代わり、1ヶ月社内で研修(≒放置)したあと
人月単価が低い案件に放り込むけど。
0699デフォルトの名無しさん
NGNG0700デフォルトの名無しさん
NGNG0701デフォルトの名無しさん
NGNG0702デフォルトの名無しさん
NGNG0703デフォルトの名無しさん
NGNG文学部だが、一応国立なんだけどセンターで数1と数2も受けてきたんだけど
はっきりいって、まじ難しいんだって
0704デフォルトの名無しさん
NGNG0705デフォルトの名無しさん
NGNG0706デフォルトの名無しさん
NGNGまぁいまじゃそれも全く解けないが、ようは数学って公式とかだろ
その問題も公式さえわかってれば解けるやつばかりなんだよ
俺はもうその手の問題やってないから解けなかったんだけど
まぁはっきりいって、あそこの社長のいやがらせだな。
一緒にうけてたおっさんなんて途中でトイレいったままもどって
こなかったぞ
0707Ruby最強!!!!
NGNG0708デフォルトの名無しさん
NGNG頭悪そう
0709デフォルトの名無しさん
NGNG0710デフォルトの名無しさん
NGNGコマンドプロンプトを開いたんですけど、cd c:/←このスラッシュの左右逆向きが打てないんですけど
どうやって打つんでしょうか?
0711デフォルトの名無しさん
NGNG0712デフォルトの名無しさん
NGNGどうやって打つんでしょうねぇ。
日本なら cd c:\でもできるよ。
0713デフォルトの名無しさん
NGNG=の右
0714デフォルトの名無しさん
NGNGろ
0715デフォルトの名無しさん
NGNGshiftの左
0716デフォルトの名無しさん
NGNG\でもできるんですか。
ありがとうございました。
0717デフォルトの名無しさん
NGNG0718デフォルトの名無しさん
NGNGUS.BAT
又は
CHCP 437
コマンドを使用する。
0719デフォルトの名無しさん
NGNGファイルも存在していますし。fopen()の後
何も入出力をしなくても落ちます。何ででしょう?
0720デフォルトの名無しさん
NGNGfopen("test", "r");
fclose(fp);
と、予想してみる。
0721デフォルトの名無しさん
NGNGそんなために chcp するやつはアフォが伝染るからあっち池
0722デフォルトの名無しさん
NGNG0723719
NGNG//---- ファイルを指定されたモードで開く関数
int open_file( FILE* fp, char* file_name, char* mode )
{
fp = fopen( file_name, mode );
if( fp == NULL )
die_with_message("file open error"); // メッセージを出力して死ぬ
lockf( fileno( fp ), F_LOCK, 0 );
return 0;
}
入出力なんかも問題なくできます。
なんなんでしょう?
0724デフォルトの名無しさん
NGNG{
fp = fopen( file_name, mode );
何のためにfp渡してるの?
使ってないじゃん。
関数部
int open_file( FILE** fp, char* file_name, char* mode )
{
*fp = fopen( file_name, mode );
/* 以下同様に *fp */
呼び出し側
FILE *fp;
open_file(&fp, ...
こういう風にしたいの?
0725デフォルトの名無しさん
NGNGプ
ププ
0727デフォルトの名無しさん
NGNG0728デフォルトの名無しさん
NGNGC言語にそんな概念ないよ。
0729デフォルトの名無しさん
NGNGあえて言えば全てpublicで、面罵関数を持つことは出来ません。
0730デフォルトの名無しさん
NGNGそれだとメチャクチャ困るだろw
0731デフォルトの名無しさん
NGNGあ、そうなんですか
構造体はあるってきいたんで
0732デフォルトの名無しさん
NGNG構造体はあるが、メンバ関数なんて概念はないし必然的にprivateって概念もない。
0733デフォルトの名無しさん
NGNGとりあえず以下は確認しました。
fileの終端に\nがついていたので\0をつけました
file はfopen()されていません。
file をファイル名に持つファイルは存在しています。
remove()の戻り値は-1です。
対象となるファイルのパーミッションは644。
ディレクトリのパーミッションは751。新規ファイルの作成はできます。
どのような原因が考えられるでしょうか?
0734デフォルトの名無しさん
NGNGperror()をつかってみたらどうなるの?
0736733
NGNGファイル名だけでアクセスしていました。
しかもofじゃなくてorだし。
マジですみません。吊ってきます。
0737デフォルトの名無しさん
NGNG0738デフォルトの名無しさん
NGNG0740デフォルトの名無しさん
NGNG普通にウニ板だろうが、
犬板に隔離措置を希望。
0741いなむらきよし
NGNG0742デフォルトの名無しさん
NGNG0743デフォルトの名無しさん
NGNG0744デフォルトの名無しさん
NGNGクラスからメンバ関数、アクセス指定子、継承などを取り除いたもの
0745デフォルトの名無しさん
NGNGクラスについて教えてください。
0746デフォルトの名無しさん
NGNGC++またはJavaスレで聞いてください
0747デフォルトの名無しさん
NGNGおいおい>>745 は>>744 が>>742 に対してクラスを使ったから
あえてクラスについて書いたのであって、そういうことではないだろう。
0748デフォルトの名無しさん
NGNG構造体にメンバ関数、アクセス指定子、継承などを加えたもの
0749デフォルトの名無しさん
NGNG「構造体にメンバ関数、アクセス指定子、継承などを加えたものから
メンバ関数、アクセス指定子、継承などを取り除いたもの」
らしいw
0750デフォルトの名無しさん
NGNG0751デフォルトの名無しさん
NGNGその上でわからないことがあったら答えるから。
0752デフォルトの名無しさん
NGNG{
int z;
if(a>b)z=a;
else z=b;
return z;
}
int main(void)
{
int a, b, z;
printf("aを入力してください\n");
scanf("%d", &a);
printf("bを入力してください\n");
scanf("%d", &b);
z=hikaku(a,b);
printf("大きいほうは%dです\n", z);
return 0;
}
こんなエラーが出ましたが、教えてください
dim03.c 11: Warning: function 'printf' undefined -- assumed to be int
dim03.c 12: Warning: function 'scanf' undefined -- assumed to be int
0753デフォルトの名無しさん
NGNG0754デフォルトの名無しさん
NGNG0756デフォルトの名無しさん
NGNGコンパイラが吐くメッセージにしてはいいかげんだな。
0757デフォルトの名無しさん
NGNG0758デフォルトの名無しさん
NGNGどうか教えてくださいませ。
main()
{
char *days{}={"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};
int i;
for(i=0;i<7;i++)
printf("%d:%s\n",i,★);
}
SanからSatまで出力するプログラムなんですが、★にはいるのは
days[i]か*(days+i)になるとのことですが、
%sで出力する場合は文字列の先頭アドレスを指定するんですよね??
それなのに何でdays+iではなく実体を表す*(days+i)になるんですか?
0759デフォルトの名無しさん
NGNGdays は、文字列のポインタのポインタです。
days :文字列へのポインタのポインタ
*(days+i):i番目の文字列へのポインタ
*(*(days+i)+j):i番目の文字列の j 番目の文字
days[i]:i番目の文字列へのポインタ
days[i][j]:i番目の文字列の j 番目の文字
最初は混乱するかも知れません。
0760デフォルトの名無しさん
NGNGなるほど。ポインタを表すということですか!
*がつくから、*(days+i)はSunやMonなどの直接の
文字列を表すものだと思っていました。
そういうものなんだなぁと割り切って覚えることにします!ありがとうございます!
0761デフォルトの名無しさん
NGNGと宣言したなら、実体も同じ様に
*days[]
0762デフォルトの名無しさん
NGNGdefine と declare の区別もつか (ry
0763デフォルトの名無しさん
NGNGhttp://www.haseko-hub.co.jp/kansai/hub_chukai/tgm_photo/65.jpg
0764デフォルトの名無しさん
NGNGどうでもいいがそれだとエラーでるぞ。 一応つっこみ
0765758
NGNGですねー。*days{}→*days[]でした。
ポインタ配列むずかしー
0766デフォルトの名無しさん
NGNG勉強中ということだが、
文字列リテラルは const であるという突っ込みは入れたほうがいいのだろうか?
0767デフォルトの名無しさん
NGNG758を見る限り traditional C を勉強中のようだが
0768デフォルトの名無しさん
NGNG何のために?
0769デフォルトの名無しさん
NGNGおすすめの C の問題集があれば教えてください。
0770デフォルトの名無しさん
NGNG#include <stdio.h>
...
とかやっといてインタプリタで実行してくれる処理系ってないの?
0771Ruby最強!!!!
NGNG0772デフォルトの名無しさん
NGNGですがそのような関数あるのでしょうか?なければどなたか教えてください。
0773デフォルトの名無しさん
NGNGstrrchr()
0774デフォルトの名無しさん
NGNGMS系ならsplitpath()
0775デフォルトの名無しさん
NGNG0776デフォルトの名無しさん
NGNGバイナリ形式でファイルに保存したいってこと?
0777775
NGNG0778デフォルトの名無しさん
NGNG文字コード?
"0123456789"[number]
ってのが一般的だろうな(numberが一桁の場合)
アスキーでいいなら
number+30 で十分だろ(同上)
0779デフォルトの名無しさん
NGNG0780デフォルトの名無しさん
NGNGatoiとかstrtolとか使え。
0781デフォルトの名無しさん
NGNG繰り返しでfor文とwhile文ってありますよね
for文でしかできないことってなんですか?
よろしくお願いします
0782Ruby最強!!!!
NGNG0783デフォルトの名無しさん
NGNG>>781
for (exp1; exp2; exp3) {
exp4;
}
はつねに
exp1;
while (exp2) {
exp4;
exp3;
}
と書き換えることができる。なのでforでできることはwhileでもできる。
0784デフォルトの名無しさん
NGNGint i;
for (i = 0; i < N; i++) {
〜
}
↓
int i = 0;
while (i < N) {
〜
i++;
}
こういう具合にforを使っているコードは全てwhileを使うコードに書き換えられる。逆も然り。
0785デフォルトの名無しさん
NGNGforは一定の回数繰り返す、whileは条件があっている間繰り返す と
言う感じに使い分けるといいよ。
for (i = 0; i < N; i++)
while (i < N)
の N がループ内で変化しないとき(外で変化するのはOK)はfor、変化するときはwhile。
言語によってはforだとNがキャッシュされてループ内で変更しても
最初のNを使用するのもあるし。
0786デフォルトの名無しさん
NGNGfor (expr1; ; expr3) {
expr;
}
は
expr1;
while () {
expr;
expr3;
}
とは書き換えられない。この場合は
expr1;
while (1) {
expr;
expr3;
}
などとする。
0787デフォルトの名無しさん
NGNGexp4;
}
上のコードを下のように書き換えることも。
exp1;
Loop:
if (exp2) {
exp4;
exp3;
goto Loop;
}
0788デフォルトの名無しさん
NGNG0789デフォルトの名無しさん
NGNGお前らconti(略
0790デフォルトの名無しさん
NGNG0791デフォルトの名無しさん
NGNGconsultantだろと小一時間(略
0792デフォルトの名無しさん
NGNG80もないけど
http://seclan.dll.jp/c99d/c99d01.htm#dt19990319
0793デフォルトの名無しさん
NGNGエクスプローラでダブルクリックしても
プログラムが動かなくなってしまいました。
どうやって元に戻したら元通りになりますか?
0794デフォルトの名無しさん
NGNG0795デフォルトの名無しさん
NGNG鼬害
0796デフォルトの名無しさん
NGNGWindows板へどうぞ。
http://pc5.2ch.net/win/
>>794
editorじゃないの
0798798
NGNG#include <stdlib.h>
#include <math.h>
#define POW_OK 0
#define POW_NOTHING 1
int most_simple_algorism(
unsigned long int x,
unsigned long int y,
unsigned long int * n)
{
unsigned long int i;
double p;
if (x == 0 && y == 0) return(POW_NOTHING);
if (x < 2 && y > x) return(POW_NOTHING);
for (i = 0; ; i++) {
p = pow(x, i);
if (p < y) continue;
*n = i;
break;
}
return(POW_OK);
}
0799798
NGNGint argc,
char * argv[])
{
int print, ret;
unsigned long int x, y, xm, ym, n;
if (argc < 3) {
printf("usage: %s x y [print]\n", argv[0]);
exit(0);
}
xm = atol(argv[1]);
ym = atol(argv[2]);
print = (argc > 3);
for (x = 0; x <= xm; x++) {
for (y = 0; y <= ym; y++) {
ret = most_simple_algorism(x, y, &n);
if (!print) continue;
printf("%ld^n >= %ld ... n = ", x, y);
if (ret == POW_OK) {
printf("%ld\n", n);
} else {
printf("Nothing!\n");
}
}
}
}
0800798
NGNG高卒で数学の解法もよく分からないので教えていただきたいのですが、
x と y が与えられているときに、x^n <= y を満たす n を求めたいのです。
現時点では >>798-799 の most_simple_algorism で実装している
超初歩的なアルゴリズムしか思いつきません。
for で n を一つずつ増やしていっているだけです。
このコードを Cygwin + Windows 2000 上で実行したところ、
$ gcc myalgo.c && time ./a.exe 100 100000
real 0m12.399s
user 0m12.108s
sys 0m0.015s
という結果になりました。
何かいいアルゴリズムがあれば教えてください。数学関係のキーワードでも構いません。
なにしろ全く想像もつかないので。。。
よろしくお願いします。
0801798
NGNGn と y が与えられているときに、x^n <= y を満たす x を求める方法
も分かればありがたいなぁ、と。
やりたいことは複数階層のディレクトリを作って
大量のファイルを散りばめたいといったことなんですが、
こういうアルゴリズムを使えれば面白いかな、と思ったわけです。
0802デフォルトの名無しさん
NGNG0804798
NGNG< for (i = 0; ; i++) {
< p = pow(x, i);
< if (p < y) continue;
< *n = i;
< break;
< }
---
> *n = (unsigned long int)(log(y)/log(x));
そしたらめちゃんこ早くはなったんですが、
$ time ./a.exe 100 100000
real 0m2.960s
user 0m2.796s
sys 0m0.015s
結果がちょっと変です。
$ ./a.exe 2 10 print
2^n >= 2 ... n = 1
2^n >= 3 ... n = 1 <--- 2 のはず
2^n >= 4 ... n = 2
2^n >= 5 ... n = 2 <--- 3 のはず
なぜでしょう? 私の組み入れ方が間違ってるんだと思いますが。。。
0805デフォルトの名無しさん
NGNGn=log_x_y
n=(log_e_y)/(log_e_x)
n*log_e_x=log_e_y
log_e_x=log_e_y^(1/n)
x=y^(1/n)
でねーのか?
高校の参考書引っぱり出して計算してみたんだが間違ってるかも。
0806デフォルトの名無しさん
NGNG0808デフォルトの名無しさん
NGNG0809デフォルトの名無しさん
NGNGeでググれ
0810デフォルトの名無しさん
NGNGあほあほあほ
0811デフォルトの名無しさん
NGNG節穴だまれ
0812798
NGNG「log 数学」で調べたら分かりました。
http://www8.plala.or.jp/ap2/shinraisei/shinraiseisuugaku.html
e=2.718281828459045...
っていう定数なんですね。まだよく分かりませんけど。
なるほど、こういうときはlogを使えば何とかなりそうだ、
というところまではとりあえずつかめました。
0813デフォルトの名無しさん
NGNG>e=2.718281828459045...
>っていう定数なんですね。
…本当に高校出ているのかと。
0815デフォルトの名無しさん
NGNGそもそもおまいさん、言ってることとやってることが違うだべさ。
>800 「x^n <= y を満たす n を求めたいのです。」
>804 「2^n >= 2 ... n = 1」
(log(y)/log(x)) で x^n == y となる n が求まるので int で
切り捨てれば x^n <= y になる。(x>1, y>1 と仮定)
不等号の向きが逆だとおかしいのは当たり前。
なお、x の方は >805 が正しくて >806 は間違い。
つか、n 乗根とれば一発な罠。
数学的な説明としてはこの辺でも見てみれば?
http://ja.wikipedia.org/wiki/%E3%83%8D%E3%83%94%E3%82%A2%E6%95%B0
http://ja.wikipedia.org/wiki/%E6%8C%87%E6%95%B0%E9%96%A2%E6%95%B0
http://ja.wikipedia.org/wiki/%E5%AF%BE%E6%95%B0%E9%96%A2%E6%95%B0
0816デフォルトの名無しさん
NGNGx^n<=y
から
x<=y^(1/n)
を導くのにあれだけのステップを踏める(しかも結果が合ってる)君に感動した。
0817798
NGNG>>804は切り上げればよかったみたいです。
< *n = (unsigned long int)(log(y)/log(x));
---
> l = log(y)/log(x);
> *n = (unsigned long int)l;
> if (l - *n > 0) *n += 1;
これで少なくとも x = 2, 0 <= y <= 10 まではうまくいきました。
0818805
NGNG気づかなかったよ..orz
つーかアホ棚俺。。
0819798
NGNGあれれ? どっちが正しいんだろう。。。
y が合計ディレクトリ数で、x が max_depth で、
n が max_branch だから、、、
max_dir = x^n になるわけで、max_dir >= total_dir
でなきゃいけないから、
・・・すみません。
「x^n <= y を満たす n」
は
「x^n >= y を満たす n」
の間違いでした。
0820デフォルトの名無しさん
NGNG0821デフォルトの名無しさん
NGNG0822798
NGNG>>801「n と y が与えられているときに、x^n >= y を満たす x を求める方法」
ってのも
x = (unsigned long int)pow(y, 1/n);
みたいな感じでうまくいくかもですね。
切り上げとか切り下げとかはやってみなきゃ分からないけど。
>>813
高校卒業したけどたぶんlogだのネイピア数だの習ってません。
高校二年のときは一学期100点で三学期0点でしたし、
三年のときはもう数学は捨てることにして、一番簡単な
医療・看護系受験対策用の数学しか選択しませんでしたから。
数学オンチのくせにプログラマ (普段は C++ しか触りませんが)
やってる高卒DQNのしょうもない質問にお答えいただきまして
本当にありがとうございました!
0823デフォルトの名無しさん
NGNG0824781
NGNG。
0825デフォルトの名無しさん
NGNG誰もそんなこといってない罠。
0826デフォルトの名無しさん
NGNG0827デフォルトの名無しさん
NGNG"\xFF\x00\xFF........................."
"..............................................................."
.
.
"...............................................................",
"..............................................................."
.
.
"................................................................",
(中略
};
clコンパイラで /Zm2000 などを指定しても C1063エラー などになってコンパイルできません。
かなり巨大な文字列をコンパイルするにはどうすればよいのでしょうか?
細かくコンパイルしてリンク??
0828デフォルトの名無しさん
NGNGclコンパイラ知らないんで、できるかどうかわからないけど。
0829デフォルトの名無しさん
NGNG知らないなら書くなドアホ
0830デフォルトの名無しさん
NGNGつーかスレ違い。
http://pc5.2ch.net/test/read.cgi/tech/1094494997/
http://pc5.2ch.net/test/read.cgi/tech/1090652323/
http://pc5.2ch.net/test/read.cgi/tech/1090324689/
0831827
NGNG0832デフォルトの名無しさん
NGNG0833デフォルトの名無しさん
NGNG0834デフォルトの名無しさん
NGNG相談室いってきます。
0835デフォルトの名無しさん
NGNGaaa();
}
を
if(...)
{
aaa();
}
に展開してくれるツールありませんか?
0836デフォルトの名無しさん
NGNGunix系ならindentってコマンドがあるはず。
他は知らん。
0837Ruby最強!!!!
NGNGRuby!!!!!!!!!!!!!!!!!!!!!!!!!!
http://gnuwin32.sourceforge.net/packages/indent.htm
0838デフォルトの名無しさん
NGNG楽しそうだね。おれはRuby使うけど、君には使えそうもないね。
0839デフォルトの名無しさん
NGNG0840デフォルトの名無しさん
NGNG高度なオートインデント機能のあるエディタならマクロでも組んで自動化できそうだが。
#少なくともemacs系ならできる。
それはいいが、スレ違いだろう。
0841デフォルトの名無しさん
NGNG0842デフォルトの名無しさん
NGNG0843デフォルトの名無しさん
NGNGツールの使い方を知りたいのなら、そのツールのスレへ
C言語から入れる方法を知りたいのであれば、Win32 API スレなどへ
0844デフォルトの名無しさん
NGNG.soかもしれないだろ!
0845デフォルトの名無しさん
NGNG0846デフォルトの名無しさん
NGNG#include <stdio.h>
const char* komastr[2][8]={{
" ", "FU", "KY", "KE", "GI", "KI", "KA", "HI",
"OU", "TO", "JU", "NK", "NG", "", "UM", "RY"},
{"", "fu", "ky", "ke", "gi", "ki", "ka", "hi",
"ou", "to", "ju", "nk", "ng", "", "um", "ry"}};
int main(int argc, char** argv)
{
int i, j;
for (i=0; i<2; i++)
for (j=0; j<2; j++)
printf("%s ", komastr[i][j]);
return 0;
}
(エラーメッセージ)
Error array2d.c: 5 too many initializers
Error array2d.c: 7 too many initializers
2 errors, 0 warnings
それほど多くの要素数でもないのに too many initializers なのは何故でしょうか?
0847デフォルトの名無しさん
NGNG2*8しか用意してないのに32個も入れるなよ
それをやるなら[2][16]
0849デフォルトの名無しさん
NGNG0850デフォルトの名無しさん
NGNG0851デフォルトの名無しさん
NGNGそこはおかしいとはいいきれない。
char [2] = "ab";
は正しいから。それが意図してる物かどうかは別として。
2文字分の場所が取られてaとbの文字が順番に入ってる配列が定義される。
0852デフォルトの名無しさん
NGNG0853デフォルトの名無しさん
NGNGint main(void)
{
int min = 5 ;
int max = 10 ;
int input ;
printf( "Plese input \"0\" or \"1\" ! \n" );
scanf("%d",&input)
if( input )
#define CHANGE <
else
#define CHANGE >
if( min CHANGE max )
printf("MAIN\n");
else
printf("__NO__\n");
return 0;
}
もちろんエラーですが、こういう事をやりたいんです。
入力した数字によって、ある部分を置き換える処理…
なんとかできませんでしょうか? どなたか知恵をお貸しください。
onegaisimasu
0854デフォルトの名無しさん
NGNG0855デフォルトの名無しさん
NGNG当たり前の事で低級な質問だったとしても、
聞かなきゃわからないこともあると思うんです。
0856デフォルトの名無しさん
NGNGまぁ、やりたい事は条件分岐で実現出来ないのかと疑問だがね
0857デフォルトの名無しさん
NGNG0858デフォルトの名無しさん
NGNG0859デフォルトの名無しさん
NGNGint cmp(int n1, int n2)
{
return cmpflg ? n1 < n2 : n1 > n2;
}
inta main()
{
...
if( input ) cmpflg = 1;
else cmpflg = 0;
if(cmp(min, max))
printf("MAIN\n");
else
printf("__no");
return 0;
}
0860デフォルトの名無しさん
NGNG以下のページを参考にlinuxでシリアル通信を行っています。
http://www.linux.or.jp/JF/JFdocs/Serial-HOWTO.html
受信データが空の状態でread()してしまうとその部分でロック
してしまいます。read()せずにデータが来ているかどうか(でき
れば何バイト来ているか)調べるにはどうすればいいのでしょう
か?
よろしくお願いします。
0861デフォルトの名無しさん
NGNGう〜ん、、、純粋な文字置換はやっぱ無理っぽいですね。
けど、こんな馬鹿な質問に答えていただきありがとうございました。
嬉しかったです。
0862デフォルトの名無しさん
NGNG0864hana
NGNGfor(j=0;j<=Y_NO;j++){
if( a > b)
printf("big\n");
}else if ( b < a ){
printf("small\n");
}
}
このプログラムだと、for文が画像を一点ずつ読んでいるため
SMALLがいくつも表示されてしまうのですが、
これを ひとつの表示にまとめたい場合 どうすればいいですか?
0865デフォルトの名無しさん
NGNG人に説明する気はあるのかね
0866デフォルトの名無しさん
NGNGスレ違いなので移動
http://pc5.2ch.net/test/read.cgi/tech/1090652323/
0867hana
NGNGすれ違いでしたか、、、
0868デフォルトの名無しさん
NGNGつまり君がその問題ごと悩んでいる点を全てさらけ出せって言ってるんだよ.
言ってる意味が分からんのだよ
0869デフォルトの名無しさん
NGNGforkしたら?
0870860
NGNGfork()ですか・・・。もっと簡単に、関数の返値で受信サイズ調べられるとうれしいんですが・・・。
>862
逝ってきます。
ありがとうございました。
0871デフォルトの名無しさん
NGNG#include<stdio.h>
void main()
{
char a[4][5];
char b[4][5]={"ぬる","ぽガ","っ!","!!"};
a[0] = b[0];
}
とすると一番下の式の左辺に値が必要というエラーがでます。
0872デフォルトの名無しさん
NGNGフツーにstrcpy()では?
strcpy(a[0],b[0]);
0873デフォルトの名無しさん
NGNG0874デフォルトの名無しさん
NGNG配列=ポインタと思ってるだろ
0875デフォルトの名無しさん
NGNGいや、始めたばっかだからポインタは詳しくやってない。
ポインタ使わないとダメなんですね、
>>872-874
ありがとう!
0876デフォルトの名無しさん
NGNGサイズが同じ配列へなら代入してもかまわんと思うが。
関数から返せないのも痛すぎる。
構造体に入れれば出来るというのがわけわからん・・・。
今まで出来なかったことを出来るようにするだけだから仕様変更しても誰も困らんと思うし・・・。
実はC99では出来るようになってたりするのか?
0877デフォルトの名無しさん
NGNG0878こちらへ誘導されたので
NGNGすいませんどうか助けてください。
ファイルから読み込みそれを別にファイルに書き込む基本的なことしてるんですが、
条件がありまして、
�@fgetc(fp)で順次読み込んだ文字がリターンキーなら次に文字を見る。
�Aその文字が 0 〜 9 か 'ー' 〜 '九' ならファイルをcloseする。
という仕様なんですが文字列操作がうまくいきません。
かな文字や関数字の判定ができません。
イメージとしては
while ((ch = fgetc(fp)) != EOF)
{
fputc(ch,fwp);
if (ch == 13) ← リターンキーのasciicode
{
ch = fgetc(fp); ← これで次にすすめているのか怪しい
以下不明・・
}
}
すいませんが文字をすすめたり漢数字の'一'判定のために
どのようなコードを書けばよいかわからないので
どなたか教えてください・・
0879こちらへ誘導されたので
NGNG条件�Aの修正。
�Aその文字が 0 〜 9 か 'ー' 〜 '九' ならリターンキーに戻って
fcloseです。
0880デフォルトの名無しさん
NGNGポインタの代入ができなくなるからダメ。
0881デフォルトの名無しさん
NGNGああ、おいらも同じ問題で困ってた。ちょっと調べたところ
CTS信号の状態をみればデータが来てるかどうか分かるらしいんだけど
CTSがHiになってるときにreadするようにすればいいんだろうか?
0882デフォルトの名無しさん
NGNG読み進める、でいいの?
だったら break を使えばいいのではないかな。思いつきだけど。
文字コードが数字であり、尚且つ連番になってることを利用する。
while ((ch = fgetc(fp)) != EOF) {
//リターンキーの場合
if (ch == '\n') {
ch = fgetc(ch, fwp); //次の文字を読む
//終了条件チェック。真なら終了。
if ((ch >= '0' && ch <= '9')
|| (ch >= 'ー' && ch <= '九')) {
break;
//続く場合は処理続行
} else {
fputc('\n', fwp);
fputc(ch, fwp);
}
//リターンキーでない場合
} else {
fputc(ch, fwp);
}
}
fclose(fp);
fclose(fwp);
0883デフォルトの名無しさん
NGNGつかってないからつい)。
あと、終了のbreak;の前に fputc('\n', fp); で改行はしておかない
といけないのかな。
0884デフォルトの名無しさん
NGNG> ch = fgetc(ch, fwp);
fgetcってこんな引数だったっけ?
> || (ch >= 'ー' && ch <= '九')) {
これって、成立することあるの?
0885デフォルトの名無しさん
NGNGこのスレで聞いてどうするという気もするしもっとローレベルな話なのかもしれないが、
ノンブロックモードは助けにならんかい?
ttp://www.linux.or.jp/JF/JFdocs/Serial-Programming-HOWTO-3.html#ss3.3
0886デフォルトの名無しさん
NGNG漢数字の「一」(いち)じゃなくて音引きの「ー」でいいのかなあ…
いや、元の質問からそうなんだけど。
0888デフォルトの名無しさん
NGNG多分ここ↓
UNIXプログラミング質問すれ Part4
ttp://pc5.2ch.net/test/read.cgi/tech/1095843584/
もしくはここ↓
【初心者歓迎】C/C++室 Ver.9【環境依存OK】
ttp://pc5.2ch.net/test/read.cgi/tech/1094494997/
0889888
NGNG場合によってはここ↓かもしれない
制御系なら俺に聞いてもいいぜ(5)
ttp://pc5.2ch.net/test/read.cgi/tech/1079102543/
0891デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=229
0892デフォルトの名無しさん
NGNGnkf -w を噛ませた上で
Javaを使う。
0893デフォルトの名無しさん
NGNG残念、そこはム板のUNIXスレだ。
0894デフォルトの名無しさん
NGNG文字コードをそのままあつかわない方がよいよ
0895デフォルトの名無しさん
NGNG扱わないほうがいいとかいうレベルじゃなく
>(ch >= 'ー' && ch <= '九')
ぶっちゃけありえな〜い。
0896デフォルトの名無しさん
NGNG0897デフォルトの名無しさん
NGNG意味無いけどな。
0898デフォルトの名無しさん
NGNGgetcでナニを受け取る気だという意味でアリエナーイ
0899デフォルトの名無しさん
NGNGってことだろ
0900デフォルトの名無しさん
NGNG型は環境にもよるんでしょうけど。 というか、'' の中には
1バイト文字を1文字しか入れられなくて、 Cでは常にintで
文字コードが返されるもんだと思ってた。 1文字どころか
'ab'なんてのも許されるんですね。この場合エンディアンの
影響も受けるんですかね。''がよく分からなくなってきた。
0901デフォルトの名無しさん
NGNG0902デフォルトの名無しさん
NGNG一応、ANSI だと
・単純文字定数は int 型。
・1バイトを超えるときの値は、処理系定義。
因みに fgetc は
・ストリームから文字を unsigned char 型として取り出し
・int に変換して戻す。
0903デフォルトの名無しさん
NGNG0904デフォルトの名無しさん
NGNG0905デフォルトの名無しさん
NGNG0906デフォルトの名無しさん
NGNGWin32環境ならSetTimer()で。
>>905
できない。
0908デフォルトの名無しさん
NGNGとりあえず社内で使うテストツールということで、
簡易的なチェックを入れることにしました。
あふれそうだったら不正な値なのでエラー終了決定です。
で、こんなの作ってみたんですけど・・・。
#define my_strcat(tgt_char, const_char, max_size) \
assert(strlen(const_char) <= max_size - strlen(tgt_char)); \
strncat(tgt_char, const_char, strlen(const_char));
#define my_strcpy(tgt_char, const_char, max_size) \
assert(strlen(const_char) <= max_size); \
strncpy(tgt_char, const_char, max_size);
char foo_str[MAX_FOO];
char tmp[MAX_NUM]; /* あくまで例です */
snprintf(tmp, MAX_NUM, "%d", num);
my_strcpy(foo_str, "test number=", MAX_FOO);
my_strcat(foo_str, tmp, MAX_FOO);
my_strcat(foo_str, "\n", MAX_FOO);
こんな感じにしてるんですけど、変なところありますか?
あと、あまり複雑or大規模にならずにもっとうまい方法があれば
ご教示いただけますか?
よろしくお願いします。
0909デフォルトの名無しさん
NGNG0910デフォルトの名無しさん
NGNG出来ないとは限らないぞ。
出来る環境があるとは思えないが。
0911デフォルトの名無しさん
NGNG0912デフォルトの名無しさん
NGNG0913デフォルトの名無しさん
NGNGそのマクロ、if や else の後ろで { } なしに使っちゃダメだぞ!
それと、戻り値を見てもいけない!お兄さんとの約束だ!
0914デフォルトの名無しさん
NGNGそんなこたぁない。
0915デフォルトの名無しさん
NGNGそんなこたーない
0916デフォルトの名無しさん
NGNG>>915
幸せになってね
0917デフォルトの名無しさん
NGNG>>912
詳しくは
★初心者にVisual C++を教えるスレ★ Part14
http://pc5.2ch.net/test/read.cgi/tech/1093672937/l50
で訊くよろし。
ところで、
1. >1 なんか読んでいない。
2. >1 は読んだが、意味が解らなかった。
3. スレ違い上等!
どれ?
0918デフォルトの名無しさん
NGNGで、ファイルポインタであるfpのアドレスがずっと不変なのはなぜですか?
次々文字を読み込むからfpのアドレスが進んでいると思ったのに実際は違っていました。
ということはfpのなかにあるポインタらしきもののアドレスが動いているということなのかな?
教えて天才さん。
0919Ruby最強!!!!
NGNG0920デフォルトの名無しさん
NGNGファイルポインタは何だか分かってますか
0921デフォルトの名無しさん
NGNG実際はどーゆーもんですか??
0922デフォルトの名無しさん
NGNGstruct _iobuf {
char *_ptr;
int _cnt;
char *_base;
int _flag;
int _file;
int _charbuf;
int _bufsiz;
char *_tmpfname;
};
typedef struct _iobuf FILE;
こんな感じ。
0923デフォルトの名無しさん
NGNGファイルを指すポインタです。
0924デフォルトの名無しさん
NGNGおまえが言っているファイルポインタはFILE型構造体へのポインタではないのかと
0925デフォルトの名無しさん
NGNG, ─ヽ
________ /,/\ヾ\ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
|__|__|__|_ __((´∀`\ )< 結局・・・わかりやすく説明してくれる神は現れなかったとさ。
|_|__|__|__ /ノへゝ/''' )ヽ \_____________________
||__| | | \´-`) / 丿/
|_|_| 从.从从 | \__ ̄ ̄⊂|丿/
|__|| 从人人从. | /\__/::::::|||
|_|_|///ヽヾ\ / ::::::::::::ゝ/||
────────(~〜ヽ::::::::::::|/
0926デフォルトの名無しさん
NGNGこんな場合、さっさと次の単元に進んじゃっていいのかな?
0927デフォルトの名無しさん
NGNGまあそういわずやってみれ。
その本は読んだことないから一般的なことしか言えんが、
そこでやったことを理解できてるかどうか計る目安になる。
読む速さを競ってるわけじゃないんだから一旦立ち止まってみれ。
「こんな問題簡単ジャーン、なんかやる気しねーなー、もう頭に答浮かんでるし」
と思って実際に解こうとしたら意外な伏線があったりしててこずったりするもんだ。
0928デフォルトの名無しさん
NGNG練習問題そのままは(たいがいつまらないから)やらなくていいと思うけど、
自分流にアレンジして見ると面白くなる。
萌オタなら萌える問題に勝手に書き換えてみ。
創造的な学習は上達も早い。
0929デフォルトの名無しさん
NGNG│
│ (1)確保 (2)確保
| FILE構造体の実体 読み込みbuffer
| fp ← fopen() ←┌───────┐ ┌→┏━━━━━━━━┓
| (4)返却 ├ ┤ │ ┃ ┃
| ├ (3)初期設定 ←┼─┘ ┃ ┃
| ├ 関連付け等 ┤ ┃ ┃
| ├ ┤ ┃ ┃
| └───────┘ . ┃ ┃
| ┃ ┃
| ┗━━━━━━━━┛
│
>>925
じゃ、大雑把に教えてヤル。イメージはこんな(↑)感じ。
fopen()を呼ぶと、メモリのどっかにFILE構造体の実体(細い□)と読み込みバッファ(太い□)を
確保して、FILE構造体にもろもろ情報をセットしてから、その先頭アドレスを返す。(1)〜(4)
んでfgetc()やfgets()などを呼ぶと、適宜ファイルの内容を読み込みバッファに読み込みつつ
そこから文字(列)を拾って、FILE構造体の中の変数を更新して返す。
ネ?fpに入れたポインタ、つまりFILE構造体の実体の先頭アドレスがコロコロ変わるハズが無いでしょ?
0930デフォルトの名無しさん
NGNG説明してもわからないでしょ。
0931デフォルトの名無しさん
NGNG0933デフォルトの名無しさん
NGNGsocketでソケットをオープンしてHTTPリクエストを送り、HTTPレスポンスヘッダを読み終えた直後で
fdopenするという方法は?
0934デフォルトの名無しさん
NGNG0935デフォルトの名無しさん
NGNG自分はFILEポインタなんて弄くった事のない厨房です。今日初めて使ってみました。
で、ひとつちょっとした疑問が浮かんだんですけど、fscanf()呼ぶと\nとかの改行まで
読み込んでくれるんですか?
レベルの低い質問ですみません。
0936デフォルトの名無しさん
NGNGそういう関数なんだし。
0937デフォルトの名無しさん
NGNGちょっと迷惑ですが、ソースを投下します。
#include<stdio.h>
void main( int argc ,char **argv )
{
FILE *sfp ,*lfp ;
char st[200] ;
if( argc < -1 )
{
printf( "ドラッグしな!" ) ;
}
else
{
sprintf( &st[0], "%s.bak" , *(argv+1) ) ;
lfp = fopen( * ( argv+1 ) ,"r" ) ;
sfp = fopen( &st[0], "w" );
while( fscanf( lfp, "%s" ,&st[0] ) != EOF )
{
fprintf( sfp, "%s\n", &st[0] ) ;
}
fclose( sfp ) ;
fclose( lfp ) ;
}
}
0938デフォルトの名無しさん
NGNGで、>>937なんですけど、確か1年前学校で習いました。
作ったって言ってもそれ引っ張り出して、ちょっと改良しただけですけど、
学校ではこう習いました。
fscanf( lfp, "%s" ,&st[0] で、\0まで文字列を読み込んで、
fprintf( sfp, "%s\n", &st[0] で、●●.bak(ファイル名)に書き出す。
そんで、lfpが次の行に移動して、また\0まで読み込んで、を繰り返す。
けど、これでは明らかに説明の食い違いを感じましたのです。
918の人もきっと同じような解釈をしていたという事でしょうか。
結論として、lfpが次の行に移動するわけではなく、\nを読み込んで
次の行に行くって事で良いですか??
長文・・・どうか大目に見てください。
0939デフォルトの名無しさん
NGNGprintf( "ドラッグしな!" ) ; ←自分用に作ったんでこうなってます(鬱
俺の解釈・・・間違ってますか?
先生に習った解釈をかえるのって結構不安なんですょ。
最後の頼りになるはみなさんの意見や指摘だけ。
0940デフォルトの名無しさん
NGNG[00][01][02][03][04][05][06][07][08][09][10][11][12][13][14][15]...
このような情報の「流れ」(まさに「ストリーム」)を考える。最初に[00]を読む。
一度[00]を読むと次は[01]の順番。[01]を読んだら次は[02]の順番。FILE
構造体にはこのような、次に読み取る位置の情報が記憶されていると思えば
いい。(実際、手元の実装では、struct FILEにpositionというフィールドがある。)
fscanfはこの読み取り位置を更新する。実際にファイルポインタのポインタと
しての値を操作しているわけではない。だから*lfpは更新されているけれども
lfpは変わらない。
0941デフォルトの名無しさん
NGNG0942デフォルトの名無しさん
NGNG> lfpが次の行に移動するわけではなく、\nを読み込んで
> 次の行に行くって事で良いですか??
まぁそう。
つか、マニュアルにどういう動きをするのかきちんと書いてある。
「先生に習った解釈では〜」とか言う前に、まずマニュアルを参照すること。
0943デフォルトの名無しさん
NGNGいま初めて聞きました。
読み込んだデータをズラーっと横に並べる感じかとイメージしている現在です。
ということは、読み込むbufferの領域は結構でかそうですね。
なにはともあれ、少々勉強不足の気がいたします。
貴重な解説ありがとうございました!
あと自分は環境を明示してなかったけど、VCです。インクルードファイル調べたら>>922
と同じのがありました。
見てもあんまわからなかったけど、次に調べるべきキーワードとか発見できてよかったっす。m(._.)mペコ
0944デフォルトの名無しさん
NGNGそうですね、返す言葉もないっす。次から・・・というか、気をつけるようにはしています。
けどマニュアルってなんかわかりにくいです(;´Д`)
慣れるまで辛そうですが、頑張ってみます^^
お二方ともアリガトウです!!
0945デフォルトの名無しさん
NGNGただ、インクルードファイルの内容を前提にプログラム組むなよ。
FILE構造体のメンバに直接アクセスしようとは思わないことだ。
0946デフォルトの名無しさん
NGNGググってたら、 GNU libc のmalloc() は常に 8 バイトにアラインメントされたメモリアドレス
を返すとありました。でも
typedef struct {
int a;
int b;
char c;
} tmp_t;
とやって printf("%d\n", sizeof(tmp_t))
とやると12バイトと表示されます。
8バイトアラインメントだとすると16バイトになる気が
するのですが、これはやっぱり8バイトアラインなんでしょうか?
0947デフォルトの名無しさん
NGNG0948デフォルトの名無しさん
NGNGスタックに確保した自動変数領域がそのように確保されるかどうかと
いうのは別の話なのでは?
0949デフォルトの名無しさん
NGNGmallocと全く関係ない。
> とやって printf("%d\n", sizeof(tmp_t))
> とやると12バイトと表示されます。
構造体のアライメントが4バイト単位だったということだろう。
0950946
NGNGああ何か混乱して書いてました、すみません。
tmp_t*p = (tmp_t*)malloc(sizeof(tmp_t));
した時、 sizeof(tmp_t)で計算された12バイトという値がmalloc
に渡ったとします。その場合、malloc(12)は 16バイト分の
メモリ領域を取り、その先頭ポインタをpに返すという事になる
のでしょうか?
0951デフォルトの名無しさん
NGNG先頭アドレスが8で割り切れるように12バイト分のメモリ領域を取り、
そのアドレスを返す。13バイト目移行のアクセスによる影響は不定。
0953デフォルトの名無しさん
NGNG0954デフォルトの名無しさん
NGNG増やせません
引数をポインタで渡すか、グローバル変数を使うしかして
0955デフォルトの名無しさん
NGNG0956デフォルトの名無しさん
NGNGその意味では関数、というかfunctionてネーミングはぴったし。
0957デフォルトの名無しさん
NGNG直積を考えれば一つになるけど。
0958デフォルトの名無しさん
NGNG仮にそのようなことが出来たとして、
x = f(a); /* f(a) は 2 と 3 を返す関数 */
って書いたとき、x には何が入れば気が済むの?
(しかし、世の中には2つや3つどころではなく、
無限の返り血を持つ関数を作る事が出来る言語が
あるのも事実だけどな)
0959デフォルトの名無しさん
NGNGリスト形式で。
0960デフォルトの名無しさん
NGNGきっとこんな感じ
0961Ruby最強!!!!
NGNGRbuy細工世婦!!!!!!!!
Rubysaikyou !」
Rubyty!!!!!!!!
0962Ruby最強!!!!
NGNG0963デフォルトの名無しさん
NGNG作者が異常なまでにプライド持っている言語は
ユーザまでその言語を崇拝しだすのか。
0964デフォルトの名無しさん
NGNGではリストを一つ返せばいいのでは?
返り血一つで足りるだろ?
0965デフォルトの名無しさん
NGNG961=962=963
荒らしたいだけの無能
0966Ruby最強!!!!
NGNG0967デフォルトの名無しさん
NGNGどうしたらいいですか?
0968デフォルトの名無しさん
NGNGfloat a;
float b;
float c;
と延々とかくのと
float a,b,c,・・・;
と書くのはどっちが良いのか教えてくれにょ
どちらもかわらないのかにょー?
0969デフォルトの名無しさん
NGNGあんたはどっちがいいと思うんだ?
先ずはそれを聞かせてもらおうじゃないか。
0970デフォルトの名無しさん
NGNG0971デフォルトの名無しさん
NGNGまとまりごとに書くのがよろしい。
ただし、ポインタは一行ごとに書くのがよろしい。
このようなコーディングルールは必ず定めるようにしましょう。
また、定められたコーディングルールには必ず従いましょう。
float count1, count2;
float a, b, c;
float tmp;
float x, y;
float* test1;
float* test2;
float* test3;
0972デフォルトの名無しさん
NGNGちゃんと答えてくださいボケども
0973デフォルトの名無しさん
NGNGfloat count1, count2,
a, b, c,
tmp,
x, y,
*test1, *test2, *test3;
#実際いるんだ。10年選手なんかで。
0974デフォルトの名無しさん
NGNG0975デフォルトの名無しさん
NGNGNo
0976デフォルトの名無しさん
NGNG無限のテキストでも対応可能です。
0977デフォルトの名無しさん
NGNG止めて欲しいなら直接言えよ。
言えないのか?(w
0978デフォルトの名無しさん
NGNG>973ではコメントしなかったが、その10年選手には指摘したよ。
その他のごみためのようなコーディングスタイルと併せて。
0979デフォルトの名無しさん
NGNGcountをfloatで宣言してるのはどうかと思う。
0981デフォルトの名無しさん
NGNG>971に言ってくれ。
0982デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1096696253/
0983デフォルトの名無しさん
NGNG>float* test1;
うわ、キモ!
ホントに居るんだ、こんな書き方するやつ。
0984デフォルトの名無しさん
NGNG0985デフォルトの名無しさん
NGNG0986デフォルトの名無しさん
NGNG0987デフォルトの名無しさん
NGNGおれおれ
0988デフォルトの名無しさん
NGNGWIZネタかよw
0989974
NGNGショボノートPCで1GBほどよませるよていです。
0990デフォルトの名無しさん
NGNGint main(void)
{
int *p,*q;
int a,b,c;
printf("数A:");
scanf("%d",&a);
printf("数B:");
scanf("%d",&b);
p=&a;
q=&b;
c=*p;
*p=*q;
*q=c;
puts("2つの値を交換しました");
printf("数A:%d\n数B:%d",a,b);
return(0);
}
ポインタを使って2つの数字を交換するCプログラムなんですけど、
これ以上工夫する事は出来ますか?教えてください。
0991デフォルトの名無しさん
NGNGc = a;
a = b;
a = c;
0992991
NGNG忘れてくれ。
0993デフォルトの名無しさん
NGNGお好きにどうぞ。
C言語では扱えるけど、君のマシンのメモリが足りない可能性はあるよね。
0994デフォルトの名無しさん
NGNG#include<stdio.h>
int main(void)
{
int *p,*q;
int a,b,c;
char s[]="数A:";
char t[]="数B:";
char u[]="2つの値を交換しました";
char v[]="%d";
char w[]="%s%s";
char x[]="\n";
char y[256];
char z[256];
printf(s);
scanf(v,&a);
printf(t);
scanf(v,&b);
p=&a;
q=&b;
c=*p;
*p=*q;
*q=c;
puts(u);
sprintf(y,w,w,x);
sprintf(z,w,y,w);
sprintf(y,z,s,v,t,v);
printf(y,a,b);
return(0);
}
0995デフォルトの名無しさん
NGNG#define p printf
#define s scanf
main(){int a,b;char*x="数A:",*y="数B:";return p(x),s("%d",&a),p(y),s("%d",&b),p("2つの値を交換しました\n%s%d\n%s%d",x,b,y,a),0;}
0996ビル・ジョブス
NGNGint main(void)
{
int a, b;
int *pA = &a,*pB = &b;
printf("数A:");
scanf("%d", pA);
printf("数B:");
scanf("%d", pB);
*pA ^= *pB;
*pB ^= *pA;
*pA ^= *pB;
printf("2つの値を交換しました\n");
printf("数A:%d\n数B:%d\n", a, b);
return 0;
}
0997ビル・ジョブス
NGNG逝ってきます。
0998デフォルトの名無しさん
NGNG問題になるのはマクロにしたときa,bが同じ変数の場合。
0999デフォルトの名無しさん
NGNG1000デフォルトの名無しさん
NGNG10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。