【发布时间】:2020-11-22 03:48:35
【问题描述】:
我试图了解这里出了什么问题。
void longestConsec(char* strarr[], int n) {
for(int i=0; i<n; i++)
{
printf("%s\n",strarr[i]);
}
}
int main()
{
char string[8][14] = {"zone", "abigail", "theta", "form", "libe", "zas", "theta", "abigail"};
longestConsec(string, 8);
return 0;
}
我想打印每个单词,但由于某种原因它不起作用。我想到的是strarr 是指向char 的指针数组,所以在每个单元格中都应该有一个单词,对吧?但是当我尝试调试代码时,我看到 strarr 和 strarr[0] 有不同的内存位置。为什么?
【问题讨论】:
-
“它不起作用”。你能解释一下你看到的输出吗?除非很明显,否则为什么输出是错误的?
-
你怎么看出
strarr和strarr[0]有不同的内存位置? -
阅读您的编译器警告。他们随时为您提供帮助。
-
另外,你可以看看这里stackoverflow.com/q/1641957/6699433,因为数组和指针是不同的东西
-
@MikeCAT,我使用调试器中的监视窗口,我看到它们有不同的地址。
标签: arrays c string function pointers