У меня есть структура, определенная так:
typedef struct {
int n;
int *n_p;
void **list_pp;
size_t rec_size;
int n_buffs;
size_t buff_size
} fl_hdr_type;
и в моем коде у меня есть функция для инициализации, которая имеет следующее
fl_hdr_type *fl_hdr;
fl_hdr = malloc(sizeof(fl_hdr_type) + (buff_size_n * rec_size_n));
где размер буфера передается в функцию, чтобы освободить место и для буферов.
Размер довольно мал, обычно. 100 * 50 или что-то в этом роде. В этой системе достаточно памяти для его выделения.
Я не могу опубликовать трассировку стека, потому что этот код находится в другой сети, но некоторая информация извлечена из dbx в файл ядра:
buff_size_n = 32, rec_size_n = 186
и стек ... строковые числа из malloc.c
t_splay:861
t_delete:796
realfree: 531
cleanfree:945
_malloc:230
_malloc:186
Есть идеи, почему это не удается?