ネットワークプログラミング with C

2005-12-21 00:53:59 | | このエントリーを含むはてなブックマーク | Tag: c言語 gcc unix ネットワーク プログラミング 課題

gcc のバージョンによって動作結果が違う……何でだっ!

void aaa(void){
struct katamari *hoge;

hoge = (struct katamari *)malloc(sizeof(struct katamari));
hoge->what = "hoge is hoge";
}

良い例が書けない……。えぇと、関数 aaa で構造体 katamari へのポインタ hoge をプロトタイプしておく。この状態で malloc してメモリを確保すると 1 回目は成功する。当然ながら 2 回目以降もメモリを確保し続けるはずなのに、 Debian with gcc v2.95 だと 2 回目の malloc で segmentation fault。まじありえない。Fedora Core with gcc v4.00 だと問題なし、って他のライブラリ関係ですか?