освобождается невыровненный указатель на Mac - PullRequest
0 голосов
/ 29 октября 2010

Эта проблема возникает только при запуске моей программы на Mac; Linux 64 и 32-битные в порядке, но на Mac я получаю кучу:

*** malloc[437]: error for object 0xbfffe970:
Non-aligned pointer being freed (2) 

к концу выполнения моей программы, где я освобождаю несколько указателей в структуре данных. Будет опубликован длинный код, но кто-нибудь знает, почему он работает без ошибок в Linux, но не в Mac?

Ответы [ 3 ]

6 голосов
/ 29 октября 2010

Возможно просто другая реализация malloc. Предположительно, Mac malloc выравнивается по большим границам, и поэтому определение указателя, который вы передаёте бесплатно, не может быть правильным, так как имеет неправильное выравнивание

ОДНАКО, это говорит о том, что вы передаете free () указатель, который не пришел из malloc (). Это, безусловно, признак ошибки, и, вероятно, это происходит на всех ваших платформах.

0 голосов
/ 23 мая 2013

Я испытал это, потому что я не использовал распределитель для массива char, который содержал только один элемент, когда создавал его.Это хорошо для всех остальных случаев, но когда массив CoreFoundation был создан с массивом из одного символа.

0 голосов
/ 05 июля 2012

Я столкнулся с той же ошибкой в ​​Mac OS X 10.7.В моем случае это было потому, что я неправильно выделил ноль байтов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...