- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:mallocの挙動について)
mallocの挙動について
このQ&Aのポイント
- C言語で書かれた32bitアプリを32bitのサーバAと64bitのサーバBで実行したところ、サーバBではmallocでNULLポインタが返され異常終了した。
- サーバAは正常終了し、期待した実行結果が得られています。
- プロジェクトの設定で2GBを越えるアドレスをサポートするオプションを設定すれば、サーバBでもアプリが正常終了するようになりました。しかし、このオプションがない場合にメモリが多いサーバでmallocのメモリ確保が失敗する関連性については理解できていません。
- みんなの回答 (1)
- 専門家の回答
お礼
なるほど! 目から鱗です! 最近、メモリ使用量がネックになるシステムをいっぱい改修してたので、どうもメモリ使用量に固執してたみたいです。 冷静に考えるとアプリが32bitである以上、OSから2GB以降のアドレス返されたらどうしようもないですよね^^; 大変納得できました。丁寧に解説頂き有難うございました。