Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 作为参数传递后,字符指针已损坏_C_String_Memory - Fatal编程技术网

C 作为参数传递后,字符指针已损坏

C 作为参数传递后,字符指针已损坏,c,string,memory,C,String,Memory,我有一个这样的函数 #define LEN 10 #define MAX 200 void f(char test[][LEN]) char test[MAX][LEN]; : : f(test); 我有这样的代码 #define LEN 10 #define MAX 200 void f(char test[][LEN]) char test[MAX][LEN]; : : f(test); 现在,当我使用dbx跟踪代码时 在调用函数f之前,我打印变量,数组都是空的。然后在调用函数f(t

我有一个这样的函数

#define LEN 10
#define MAX 200
void f(char test[][LEN])
char test[MAX][LEN];
:
:
f(test);
我有这样的代码

#define LEN 10
#define MAX 200
void f(char test[][LEN])
char test[MAX][LEN];
:
:
f(test);
现在,当我使用dbx跟踪代码时

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

原因可能是什么

我为此工作了很长时间,完全迷失了方向


有人能提供一个提示吗?

您可能正在破坏堆栈


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

您能给我们展示
f(test)
之前的代码和
f
函数的主体吗?我想您至少需要发布
f()的部分代码
。但问题是我在调用函数之前和传递参数之后立即打印变量。函数体尚未执行。
test
的定义中没有指针,我没有传递值。但是,
f()
中的缓冲区溢出可能会更改
main
test
的值。我记得你说过你调用了该函数?请给我们完整的代码。你真的在填充2D数组吗?