Вопрос по malloc, c, memory – malloc.c: ошибка 3074?

-1

Когда я пишу программу на C, я столкнулся с проблемой, которая заключается в следующем:

malloc.c:3074: sYSMALLOc: Assertion (old_top == (((mbinptr) (((char *) &((av)->bins[((1) - 1) * 2])) - __builtin_offsetof (struct malloc_chunk, fd)))) && old_size == 0) || ((unsigned long) (old_size) >= (unsigned long)((((__builtin_offsetof (struct malloc_chunk, fd_nextsize))+((2 * (sizeof(size_t))) - 1)) & ~((2 * (sizeof(size_t))) - 1))) && ((old_top)->size & 0x1) && ((unsigned long)old_end & pagemask) == 0) failed.

Пожалуйста, помогите мне исправить это, спасибо заранее!

Я просто использую метод malloc (), чтобы получить немного памяти. Если я прокомментирую эту строку, этот проблом не произойдет. Charlie Epps
Можете ли вы воспроизвести это на небольшом примере? Примерно десять строк кода. Eugene Bujak
попробуй использовать много утверждений. Не объединяйте все эти логические тесты в одно утверждение,if Вы хотите легко найти проблему. Nick Dandoulakis
Строка, как эта char * seq = malloc (1000 * sizeof (char)); Конечно, есть еще такие строки. Но я не знаю, где это. Charlie Epps
Похоже на кучу неправильного использования. Вы должны предоставить фрагмент, который разоблачает это. sharptooth

Ваш Ответ

1   ответ
2

что администрация, сохраненная для выделения памяти, была повреждена. Я думаю, что у вас есть что-то вроде переполнения буфера где-то до того, как эта ошибка возникает.

Поскольку ошибка является результатом более ранней проблемы (при условии, что я прав), это может быть несколько трудной проблемой для исправления. Возможно, такой инструмент, как valgrind, поможет вам обнаружить неправильные записи в память. Если у вас есть небольшая программа, которая демонстрирует проблему, я бы предложил добавить этот код к вашему вопросу.

все же разрешите поблагодарить вас. Charlie Epps
Моя программа немного большая, я не могу отобразить все коды здесь. Charlie Epps

Похожие вопросы