簡體   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