Указатель на символ поврежден после передачи в качестве параметра - PullRequest
0 голосов
/ 20 ноября 2010

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

#define LEN 10
#define MAX 200
void f(char test[][LEN])

У меня есть такой код

char test[MAX][LEN];
:
:
f(test);

Теперь, когда я отслеживаю код, используя dbx.

Сразу перед вызовом функции f я печатаю переменную, все массивы пусты. И тогда после вызова функции f (test) указатель повреждается, а некоторый элемент массива указывает на дерьмовую память. Это происходит сразу после передачи параметра.

В чем может быть причина?

Я работаю над этим долгое время и полностью потерялся.

Может кто-нибудь предложить подсказку?

1 Ответ

0 голосов
/ 08 марта 2011

Возможно вы портите стек.

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

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