【发布时间】:2018-11-27 17:58:10
【问题描述】:
我正在尝试做这样的事情:
int main()
{
char strMat[][32] = { {"FIRST"}, {"SECOND"}, };
printf ("%s\n", strMat[0]);
test ((char **) strMat);
return 0;
}
void test (char **strMat)
{
printf ("%s\n", strMat[0]);
}
我无法弄清楚为什么在调用 test() 之前第一个字符串写入正确,但后来我遇到了分段错误。在其他代码部分中,我用 argv 调用 test() 并且它工作正常。为什么尝试在测试函数上打印 strMat[0] 会导致分段错误?
【问题讨论】:
-
解决这个问题的简单方法是在调试器中运行它,它会告诉你在哪里以及传入了什么
-
'debigger' - 一个让问题更小的工具 :-)