陣列指標malloc空間問題

2021-06-28 15:21:48 字數 490 閱讀 8236

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會為這個結構體變數分配記憶體 如果定義的是乙個結構...