的初始化正确的语法,我怎么能初始化指针数组用C正确一个指向数组的指针
这里是我的代码
int (*data[10]);
int a[10];
data = &a[0]; /* gives a warning "int *" cannot be assigned to entity of "int (*)[10]" */
我怎样才能摆脱这种警告?
的初始化正确的语法,我怎么能初始化指针数组用C正确一个指向数组的指针
这里是我的代码
int (*data[10]);
int a[10];
data = &a[0]; /* gives a warning "int *" cannot be assigned to entity of "int (*)[10]" */
我怎样才能摆脱这种警告?
int **data;
int a[10];
data = &a;
你可以定义建议的资料其他:int (*date)[10];
但我相信使用它作为一个双指针将使更多的降神要数组的大小从10更改为其他任何一天!
因为'&a [0]'被分配给'int **'是一个'int *',所以这段代码不会干净地编译。 – 2015-02-12 06:30:46
你说得对,修好了。 – 2015-02-14 17:06:54
变量data
是一个指针数组,你试着给它分配一个指针。如果你想声明data
为指针,你必须重新安排括号的数组:
int (*data)[10];
我建议你阅读有关clockwise/spiral rule。
声明指针正确的数组:
int (*data)[10];
分配一个指针数组它:
int a[10];
data = &a;
谢谢....它的作品... – user2314818 2013-04-24 13:57:41
我相信你的括号是错误的。您需要:
int (*data)[10];
请注意,您可以使用cdecl.org获得有关这些事情的帮助。
为了您的原代码,它说:
申报数据指针数组10为int
对于矿山,它说:
申报数据指针数组10的int
这将是'int(* data)[10]'.'int(* data [10] )''和'int * data [10]没有什么不同'' – 2013-04-24 13:57:17
我会使用'int ** date;'所以如果数组的大小将不得不改变它不需要两个变化 – 2013-04-24 14:00:15
我正要回答这个问题问题。但是当我看到三个SO回答的重量级时退出了。 – 2013-04-24 14:05:14