[英]malloc pointer to array
int (*p)[2];
p=(int(*))malloc(sizeof(int[2])*100);
malloc指向数组的指针的正确方法是什么? 我无法找出(int(*))的部分
发表评论作为答案:
在C
你不应该转换malloc
的返回值。 请参阅SO上的这篇文章 ,了解更多关于为什么在C
对malloc
返回值进行类型转换不是一个好主意的信息。 如果由于某种原因你真的想要施放,它应该是(int(*)[2])
。 (int(*))
是int *
。 传递给malloc的大小看起来很好(为100个指针分配大小为2个整数的数组)。 所以你应该这样做
int (*p)[2];
p=malloc(sizeof(int[2])*100);
希望这可以帮助!
目前还不清楚你想要什么。 如果你想要100个int对,例如,排列为指向int的指针数组(其中每个指针指向两个整数),那么你需要在100个指向int的指针上调用malloc 100次,每次分配两个整数。
它只是没有意义“malloc指向数组的指针”。 你可以malloc一个数组,并将该地址分配给指针,或者你可以malloc一个指针数组。 但你问的问题并不清楚。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.