0

私は非常に典型的な問題に直面しています。void * を返す関数 (create_instance) があります。create_instance 内で、構造体の malloc を実行し、構造体のメンバーにデフォルト値を設定して、malloc されたメモリを返します。

create_instance 内の malloc メモリは 0x7fffff000080 でした。呼び出し関数では、関数の戻り値は 0xffffffffff000080 として表示されます。

次に、明らかな構造体のメンバーにアクセスしようとすると、プログラムがクラッシュします。

私の質問は、関数が戻るときに値が変更される理由です。

開発には Ubutu 12.04 LTS、コードブロック 10.05 環境を使用しています。

コンパイラ/リンカー オプションを指定する必要がありますか。オプション -m64 を試してみましたが、うまくいきませんでした。

このことを知っている方がいらっしゃいましたら、お返事をいただければ幸いです。

カマル ネット クラウド システム バンガロール

4

0 に答える 0