を含む共有ライブラリ内にグローバル変数がありint*
ます。
プログラムにメモリを割り当てようとすると、プログラム内double free or
memory corruption error
から fromを受け取りglibc
ます。面白いことに、最新バージョンの glibc ではこれは起こりません。
コードは次のようになります。
typedef struct{
int a;
int b;
mytype_t *t;
} A
私が持っている図書館では
A *a;
コード内
a = malloc ( sizeof ( A ) );
a->t = malloc ( sizeof( *t) );
最初の malloc は問題なく動作しますが、2 番目の malloc を実行したときにのみ問題が発生します。a->list を解放しようとすると、上記のエラーが発生します。a
a->list の前に解放されません。
ありがとうございました。
**EDIT**
問題を修正しましたが、その理由はよくわかりません。malloc の代わりに calloc を使用し、 の代わりに;malloc( sizeof(*t) )
を使用しました。calloc ( sizeof ( mytype_t ) )