我在接受采访时被问过,有一个指向10个整数数组的指针,如下所示.
int (*p)[10];
Run Code Online (Sandbox Code Playgroud)
你如何动态分配?
这是我做过的事情
p=(int *)malloc(10*sizeof(int));
Run Code Online (Sandbox Code Playgroud)
但它看起来不对,因为我没有做正确的类型转换.
所以我想知道*p的类型是什么?
与int*p类似,p的类型为int.
以下是如何分配:
p = malloc(sizeof *p);
Run Code Online (Sandbox Code Playgroud)
要么
p = malloc(sizeof (int [10]));
Run Code Online (Sandbox Code Playgroud)
p是类型int (*)[10]和*p类型int [10].
p是指向数组10的指针,int并且*p是数组10 int.