外部全局变量的动态分配

时间:2013-03-31 18:48:14

标签: c memory extern

我在共享库中有一个包含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) );

0 个答案:

没有答案