我在接受采访时被问到,有一个指向10个整数数组的指针,如下所示。
int (*p)[10];
如何动态分配?
这是我做过的事情
p=(int *)malloc(10*sizeof(int));
但它看起来不对,因为我没有做正确的类型转换。
所以我想知道* p ??
的类型是什么与int * p类似,p的类型为int。
答案 0 :(得分:9)
以下是如何分配:
p = malloc(sizeof *p);
或
p = malloc(sizeof (int [10]));
p
的类型为int (*)[10]
,*p
的类型为int [10]
。
p
是指向int
的数组10的指针,而*p
是int
的数组10。