int (*p)[2];
p=(int(*))malloc(sizeof(int[2])*100);
将指针错误定位到数组的正确方法是什么?我无法弄清楚 (int(*(( 的部分
发布评论作为答案:C
不应强制转换 malloc
的返回值。请参阅SO上的这篇文章,以获取有关为什么类型转换返回值malloc
在C
中不是一个好主意的更多信息。如果出于某种原因你真的真的想投,那应该是(int(*)[2])
. (int(*))
int *
.传递给 malloc 的大小看起来不错(将 100 个指针的大小分配给 2 个整数的数组(。所以你应该做
int (*p)[2];
p=malloc(sizeof(int[2])*100);
希望这有帮助!
不清楚你想要什么。 例如,如果你想要 100 个 int 对,排列为指向 int 的指针数组(其中每个指针正好指向两个 int(,那么你需要在 100 个指向 int 的指针上调用 malloc 100 次,每次分配两个整数。
"malloc 一个指向数组的指针"只是没有意义。 你可以malloc一个数组,并将该地址分配给一个指针,或者你可以malloc一个指针数组。 但是你问的不清楚。