2012-04-05 3 views
1

У меня есть программа python, которая вызывает функцию C. Я отправляю некоторые структуры, содержащие изменчивые символы, на c-функции, а моя функция c заполняет структуру.*** glibc обнаружен *** python: free(): недопустимый следующий размер (быстрый):

класса М.И.С. (структура): полей = [("х", c_int), ("буфер", 100 * c_char)]

я отправить это функции C и функции C заполняет значение в этой структуре. Моя программа работает очень хорошо, но после возвращения он выдает ошибку

* Glibc обнаруженную * питона: свободный(): Invalid следующий размер (быстро):

Последующее выполнение программы показывает одно из следующих 3-х ошибок при небольшом изменении кода (например, печать «привет»).

* Glibc обнаружена * Python: таНос(): недействительный следующий размер (быстро):

* Glibc обнаружена * Python: свободный(): недействительный следующий размер (быстро):

ошибка сегментации

Пожалуйста, помогите мне. Заранее спасибо.

+0

При ошибке malloc() моя программа не выполняется полностью – Sudip

ответ

1

Вы повредили арену памяти, просто и просто, возможно, написав за пределами памяти, которая была передана функции C, но, не видя исходного кода, мы никогда не узнаем наверняка.

Это сообщение появляется только в том случае, если glib обнаруживает, что информация о распределении памяти была повреждена.

Смежные вопросы