作为参数传递后,char指针已损坏

时间:2010-11-19 22:34:11

标签: c string memory

我有这样的功能

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

我有这样的代码

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

现在我使用dbx跟踪代码。

在调用函数f之前,我打印变量,数组都是空的。然后调用函数f(test),指针被破坏,数组的某个元素指向垃圾内存。它发生在参数传递之后。

可能是什么原因?

我正在研究这个问题已经很长时间了。

有人可以提供提示吗?

1 个答案:

答案 0 :(得分:0)

你可能会破坏堆栈。

它可能是在f之前调用的某个函数,需要返回一个值而不是所有执行路径都以return语句结束。