malloc指向数组的指针

时间:2012-02-17 08:03:48

标签: c malloc

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

malloc指向数组的指针的正确方法是什么? 我无法弄清楚(int(*))

的部分

2 个答案:

答案 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一个指针数组。但你问的问题并不清楚。