小编Dan*_*eam的帖子

如何将数组[]的地址存储在变量中

这似乎是一个愚蠢的问题。我有一个字符数组,想要将数组的地址存储在另一个变量中,但似乎无法声明数组地址的正确类型(我正在使用 gcc):

\n
\n

在:

\n
int main(void){\n  char cha[] = "abcde";\n  char **arrayAddress = &cha;\n}\n
Run Code Online (Sandbox Code Playgroud)\n

出去:

\n
arrayaddress.c: In function \xe2\x80\x98main\xe2\x80\x99:\narrayaddress.c:3:25: warning: initialization of \xe2\x80\x98char **\xe2\x80\x99 from incompatible pointer type \xe2\x80\x98char (*)[6]\xe2\x80\x99 [-Wincompatible-pointer-types]\n    3 |   char **arrayAddress = &cha;\n      |                         ^\n
Run Code Online (Sandbox Code Playgroud)\n
\n

这是预期的,我在其他地方读过, 的类型cha应该是char(*)[6]. 但是当我尝试arrayAddress用这种类型声明时,我的程序失败了:

\n
\n

在:

\n
arrayaddress.c: In function \xe2\x80\x98main\xe2\x80\x99:\narrayaddress.c:3:25: warning: initialization of \xe2\x80\x98char **\xe2\x80\x99 from incompatible pointer type \xe2\x80\x98char (*)[6]\xe2\x80\x99 [-Wincompatible-pointer-types]\n    3 |   char **arrayAddress = …
Run Code Online (Sandbox Code Playgroud)

c arrays pointers

2
推荐指数
1
解决办法
890
查看次数

标签 统计

arrays ×1

c ×1

pointers ×1