int (*p)[2];
p=(int(*))malloc(sizeof(int[2])*100);
malloc指向数组的指针的正确方法是什么? 我无法弄清楚(int(*))
的部分答案 0 :(得分:8)
发表评论作为回答:
在C
中,您不应该转换malloc
的返回值。有关在malloc
中对C
的类型转换值进行类型转换不是一个好主意的详细信息,请参阅SO上的this post。如果由于某种原因你真的想要演员,它应该是(int(*)[2])
。 (int(*))
是int *
。传递给malloc的大小看起来很好(为100个指针分配大小为2个整数的数组)。所以你应该这样做
int (*p)[2];
p=malloc(sizeof(int[2])*100);
希望这有帮助!
答案 1 :(得分:-1)
目前还不清楚你想要什么。如果你想要100个int对,例如,排列为指向int的指针数组(其中每个指针指向两个整数),那么你需要在100个指向int的指针上调用malloc 100次,每次分配两个整数。 / p>
“malloc指向数组的指针”没有意义。你可以malloc一个数组,并将该地址分配给指针,或者你可以malloc一个指针数组。但你问的问题并不清楚。