我在共享库中有一个包含int*
的全局变量。
当我尝试为其分配内存时,从我的程序内部,我从double free or
memory corruption error
收到glibc
。有趣的是,在最新版本的glibc上,这种情况不会发生。
代码是这样的:
typedef struct{
int a;
int b;
mytype_t *t;
} A
我在图书馆
A *a;
在代码中
a = malloc ( sizeof ( A ) );
a->t = malloc ( sizeof( *t) );
第一个malloc工作正常,只有当我做第二个我有问题。当我尝试释放a->列表时,上述错误就会到位。 { - 1}}在a->列表之前未被释放。
谢谢。
a
我已经解决了这个问题,但我真的不知道为什么。我使用calloc而不是malloc而不是**EDIT**
,而是使用了malloc( sizeof(*t) )
;