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