Возможные причины изменения значения указателя в C? - PullRequest
0 голосов
/ 24 ноября 2011

У меня есть функция

void* fn( void* ptr ){...}

, который я использую в качестве начального метода в pthread. Где-то в функции я получаю сообщение об ошибке, когда ptr (обычно указывающий на структуру) изменяется с исходного значения на 0x100000000000000 (с printf("%p")), хотя нигде в функции fn это не назначается, я только чтение его значений, таких как ptr->value. Есть идеи?

1 Ответ

3 голосов
/ 24 ноября 2011

Это может быть переполнение буфера в вызываемой функции.

Предполагая, что в системе Linux я обычно отлаживаю такие ошибки с помощью аппаратных точек наблюдения GDB .

Вы также можетезапустите вашу программу через valgrind.

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