指向数组的malloc指针

指向数组的malloc指针,c,malloc,C,Malloc,将指针malloc到数组的正确方法是什么? 我想不出有(int(*)的部分。不清楚您在这里想要什么。例如,如果希望将100个int对排列为指向int的指针数组(其中每个指针正好指向两个int),则需要在指向int的100个指针上调用malloc 100次,每次分配两个整数 “malloc是指向数组的指针”是没有意义的。您可以malloc一个数组,并将该地址分配给指针,也可以malloc一个指针数组。但是你问的不清楚。发表评论作为答案: 在C中,不应强制转换malloc的返回值。有关为什么在C中输

将指针malloc到数组的正确方法是什么?
我想不出有(int(*)的部分。

不清楚您在这里想要什么。例如,如果希望将100个int对排列为指向int的指针数组(其中每个指针正好指向两个int),则需要在指向int的100个指针上调用malloc 100次,每次分配两个整数


“malloc是指向数组的指针”是没有意义的。您可以malloc一个数组,并将该地址分配给指针,也可以malloc一个指针数组。但是你问的不清楚。

发表评论作为答案:
C
中,不应强制转换
malloc
的返回值。有关为什么在
C
中输入
malloc
的返回值不是一个好主意的更多信息,请参阅SO。如果出于某种原因,您真的想要强制转换,那么它应该是
(int(*)[2])
<代码>(int(*)是
int*
。传递给malloc的大小看起来不错(将100个指针的大小分配给2个整数的数组)。所以你应该做什么

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

希望这有帮助

在C
(int(*)
中应避免使用。建议您不要强制转换
malloc
的返回值。哦,哇,不再有编译错误,谢谢。如果您真的想强制转换,它应该是
(int(*)[2])
<代码>(int(*)是
int*
。传递给
malloc
的大小看起来很好(将100个指针的大小分配给2个整数的数组)谢谢,您可以将此作为答案发布。我不认为这里有问题。你能更具体一点吗?好的,但如果我不知道在运行时需要100个指针呢?如果我需要10000呢?我想我做得对
int (*p)[2];
p=malloc(sizeof(int[2])*100);