int (*p)[10]
這是陣列指標,指標的型別為(*)[10],即指標指向的型別為10個元素的整形陣列。
錯誤:p = (int*) malloc(10*sizeof(int));這裡說明p的型別為乙個整型 int *。
顯然型別不匹配!
正確:int (*p)[10];
p = (int (*)[10]) malloc(10*sizeof(int));
擴充套件多維指標:
char (* p)[2][3];
p = (char (*)[2][3]) malloc(6*sizeof(char));
char (* p)[3];
p = (char (*)[3]) malloc(6*sizeof(char));高維不可省略
對於二重指標是分兩步,比如:
float **cluster=(float **)malloc(sizeof(float *)*k)
for(i=0;i
malloc分配給指標空間與之間建立陣列的區別
首先回答你的問題 嚴格的說不等於陣列,但是可以認為它是個陣列一樣的使用而不產生任何問題。不過既然這樣,那它應該算是個陣列吧。所以,一般我們都用 動態陣列 這種名字來稱呼這種東西。要講清楚這個東西,涉及到malloc函式,指標型別和 下標運算。分割線 0 malloc是c的標準庫函式之一,用來分配動態...
malloc分配空間的問題
include h include h int main memset p,0,sizeof p 使陣列中的每個值首先都為0 p 0 0 1 sum 1 x 0 y 0 while sum 按照蛇形賦值 printf 輸出n階矩陣 n for i 0 iprintf n goto loop retu...
為什麼結構體指標需要malloc申請空間
例如此時 int init struct node head 結構體指標 初始化 newnode value 0 newnode next null head newnode 如果定義乙個結構體型別的普通變數,可以不malloc動態申請記憶體,cpu會為這個結構體變數分配記憶體 如果定義的是乙個結構...