gpt4 book ai didi

c - 警告 : assignment from incompatible pointer type for a 2D array pointer

转载 作者:太空宇宙 更新时间:2023-11-04 04:59:58 25 4
gpt4 key购买 nike

对于我的问题的简单性及其与已经提出的问题的相似性,我深表歉意。我已经查看了类似的问题并研究了几个小时,但我一直无法理清阻碍我理解它的任何误解。

在以下代码摘录中,警告“来自不兼容指针类型的赋值 [默认启用]”出现在注释为“警告”的行的等号处。

char * readFile(int width, int height)
{
char mapArray[width][height];
char *p;
p = mapArray; // Warning
return p;
}

这是为什么?

我目前的理解是“mapArray”包含二维字符数组的第一个元素的地址。 'p' 被定义为将来它将包含内存中存在 char 的另一个位置的地址。然后将“p”的值设置为“mapArray”的当前值,因此它现在包含所述数组的第一个元素的地址。该函数返回 p 的值,它是一个地址,即指向内存中 char 的指针。

如果有人能告诉我我的理解在哪里失败,以及不兼容的指针类型在哪里进入这个,我将不胜感激。

最佳答案

mapArray 的返回类型为 char ()[height],而您声明的指针 p 的类型为 char。所以 p 只能接受指向一个一维数组的指针。如果你像下面这样写,那么你不会收到警告,因为 mapArray[0] 返回指向高度字符的一维数组的指针:

p = mapArray [0];

关于c - 警告 : assignment from incompatible pointer type for a 2D array pointer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25346440/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com