C - 指向数组的 malloc 指针


int (*p)[2];
p=(int(*))malloc(sizeof(int[2])*100);

将指针错误定位到数组的正确方法是什么?我无法弄清楚 (int(*(( 的部分

发布评论作为答案:
C不应强制转换 malloc 的返回值。请参阅SO上的这篇文章,以获取有关为什么类型转换返回值mallocC中不是一个好主意的更多信息。如果出于某种原因你真的真的想投,那应该是(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一个指针数组。 但是你问的不清楚。

相关内容

  • 没有找到相关文章

最新更新