繁体   English   中英

malloc指向数组的指针

[英]malloc pointer to array

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

malloc指向数组的指针的正确方法是什么? 我无法找出(int(*))的部分

发表评论作为答案:
C你不应该转换malloc的返回值。 请参阅SO上的这篇文章 ,了解更多关于为什么在Cmalloc返回值进行类型转换不是一个好主意的信息。 如果由于某种原因你真的想要施放,它应该是(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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM