Динамическое распределение для внешних глобальных переменных
У меня есть глобальная переменная внутри общей библиотеки, которая содержит 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->, появляется указанная выше ошибка. a
не освобождается до a->list.
Спасибо.
**EDIT**
Я исправил проблему, но не знаю почему. Я использовал calloc вместо malloc и вместо malloc( sizeof(*t) )
, Я использовал calloc ( sizeof ( mytype_t ) )
;