[英]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.