Динамическое распределение для внешних глобальных переменных

У меня есть глобальная переменная внутри общей библиотеки, которая содержит 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 ) );

0 ответов

Другие вопросы по тегам