我有这样的功能
#define LEN 10
#define MAX 200
void f(char test[][LEN])
我有这样的代码
char test[MAX][LEN];
:
:
f(test);
现在我使用dbx跟踪代码。
在调用函数f之前,我打印变量,数组都是空的。然后调用函数f(test),指针被破坏,数组的某个元素指向垃圾内存。它发生在参数传递之后。
可能是什么原因?
我正在研究这个问题已经很长时间了。
有人可以提供提示吗?
答案 0 :(得分:0)
你可能会破坏堆栈。
它可能是在f
之前调用的某个函数,需要返回一个值而不是所有执行路径都以return
语句结束。