如何正确初始化指向 C 中的数组的指针
这是我的代码
int (*data[10]);
int a[10];
data = &a[0]; /* gives a warning "int *" cannot be assigned to entity of "int (*)[10]" */
我怎样才能摆脱这个警告?
正确声明指向数组的指针:
int (*data)[10];
为它分配一个指向数组的指针:
int a[10];
data = &a;
我相信你的括号是错误的。你需要:
int (*data)[10];
请注意,您可以使用cdecl.org来获得这些方面的帮助。
对于您的原始代码,它说:
将数据声明为指向 int 的指针的数组 10
对于我来说,它说:
将数据声明为指向 int 数组 10 的指针
int **data;
int a[10];
data = &a;
您可以按照其他建议定义数据:int (*date)[10];
但我相信,在您希望将该数组的大小从 10 更改为其他任何值的那一天,将其用作双指针会更容易!