C言語なら俺に聞け<34>

このエントリーをはてなブックマークに追加
>>947
ダブルコーテーションで囲まれた"文字列定数"←は
つまりコンパイルの時点で(強引な表現をすれば)exeに埋め込まれるわけで
関数に文字列定数を渡すようなコーディングをした場合は
その文字列定数が、文字列定数が埋め込まれた場所を指すconst charポインタに
置き換えられていると思えば良いのではないかな
>>951
どうでもいいけど、どうしshort?
>>953
951の書き込みは全体的に良く分から
955デフォルトの名無しさん:02/10/11 09:53
リテラル。セグメント。
初耳・・・どんな意味で?
956951:02/10/11 11:03
僕に聞かれてもあんまりシランっす。

引っ張り出した本に書いてありますた。

--------------------
スタックセグメント // ローカル変数とか



ここから--------------
ヒープ // mallocにより動的確保

BBS // グローバル変数(初期値なし0)

データ // グローバル変数(初期値あり)
-----------------ここまで、データセグメント
テキストセグメント // プログラムのコード部分が
// おさめられている読み出し専用領域

てなふーに割り当てられるっちゅ−よーなことらしいです。




シランでもいいと思いますた。
>>956
それは個別の実装の話だから一般論として語るもんじゃないよ。
おsage。
わすれてた。
>>956
シランでもいいかどうかは時と場合によるが。
ついでに言うと、BSSだと思うが。BBSじゃなくて。
> 957

うぅ、
言われてみればLinux固有だと気がつきました。
あほなこと語ってしまいましたすみません。
>>970
次スレよろしこ
>どこでもさせるようです
arr_ptはarrayの先頭のアドレスを受け取っただけ。
arrayを宣言したときにその後ろに連続してデータが入るので、
arr_pt[i]で辿る事が出来る。
963962追加:02/10/11 17:57
プログラムはarr_pt[i]=*(arr_pt+i)と解釈している。
i[arr_pt]
> 963

そうですよね。
ぽいんたーっていうと、ふつーそれしか思い当たらないので
>>941さんが銭湯アドレスって言葉にこだわって混乱してるのかと思って
ぽいんたーは銭湯アドレスを取得したら、
メモリー領域にアクセスするのに使えると思えばわかりやすいかと思ったら
なおさらわかりずらかったです。

それよりも、>951で不可解なのは、
変数 j の使い道だと思います。
>>894
s/租借/咀嚼/g
:)
967デフォルトの名無しさん:02/10/11 19:29
2つの入出力があります。
入力ではselectを使いたいんだけど、出力はfprintfを使いたい。
つまり、このままではファイルポインタとファイルディスクリプタが
同居してしまうのですが、こういうばあいの
どこまでの操作なら安全でどこからの操作が危険か
というガイドラインはありますか?

そもそもFILE*使うなよ、というのはありますが まあそれは置いといて。
968デフォルトの名無しさん:02/10/11 20:12
while ( fgets ( str,256,fp ) != NULL ) {
getchar ();
printf ( "%s",str );
}
fpで示すファイルを一行づつ読みこんで
Enter押すまで止めておくプログラムです。
例えばファイルの中身が
123
4567
89
10
というもだとしてこのプログラムを実行すると
123

4567
1行スペースが空いてしまいます。
fgetsが復改文字も読みこむのが原因ですよね?
スペースの空かないプログラムを作りたいのですが・・・
strlenで長さを測って、最後尾の"\n"を取ればいいと思うのですが
各行で長さがちがうので困っております。
ご教授おながいします!
>>967
ファイルポインタから対応するディスクリプタ取り出せるよ。それ使えばOK
970デフォルトの名無しさん:02/10/11 20:40
>>969
その方法を教えてください。
逆はfdopenでできますけど。
971970:02/10/11 20:41
次スレたててきます。
>>968
> fgetsが復改文字も読みこむのが原因ですよね?
いや、復改文字がエコーバックされるのが原因
でも、改行が取りたかったら
str[strlen(str) -1] = '\0';
とかしろ
>>972
ありがとうございます!

・・・・やっぱりFILE *からFDを得る関数があったんだ・・・・
お疲れ様です
記念パピコV(^o^)V
1000いただいてもよろしいのですか?
for(i = 20;i > 0;i ++)
{
printf("%d\n", i+980);
exit(0);
いただいちゃってください
// >>983
// 終わらせるな!ヴォケ
// >>984
// エラー出すなヴォケ
}
void func(Object* nanika)
{
// 988さん、Object型の扱い方教えてくらはい
//>>980
//ループお椀ね円だよ!
return 0;
} // nanika は一度も使用されませんでした。
>>990
>>987で終わってるじゃ名井
994
まんこ
ちんこ
すっせんんー
せせせせせんんんー
999
1000
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。