一維動態陣列和二維動態陣列的建立和使用

2022-09-23 20:15:11 字數 1058 閱讀 8185

#include

#include

void main()

for(i=0;i

printf(%d ,a[i]);//陣列元素輸出

}printf( );

free(a);//動態釋放指標a所指向的n歌記憶體空間

二維動態陣列的建立和使用

#include

#include

//建立二維動態陣列的函式

int **make2darray(int row,int col)

return a;

}//釋放二維動態陣列的函式

void deliver2darray(int **a,int row)

free(a);

}void main()

for(i=0;i

printf(%d ,a[i]);//陣列元素輸出

}printf( );

free(a);//動態釋放指標a所指向的n歌記憶體空間

*///二維動態陣列

int i,j,c;

int row=3,col=4,**a;

a=make2darray(row,col);

c=1;

for(i=0;i

for(j=0;j

a[i][j]=c;//陣列元素賦值

c++;}}

for(i=0;i

for(j=0;j

printf(%5d,a[i][j]);//顯示陣列元素

}printf( );

}deliver2darray(a,row);

/*realloc()函式的原型是:(void *)realloc(void *p,unsigned size)

realloc()函式的功能是,將指標p所指向的已分配記憶體區的大小改為size,函式返回新分配記憶體區

的首位址。size既可以比原來分配的記憶體區大,也可以比原來分配的記憶體區小。

新分配的記憶體區中原樣儲存原記憶體區的資料值。當新分配的記憶體區設為size2小於原分配的記憶體區size1時

新分配記憶體區中原樣儲存原分配記憶體區中前size2個資料值*/}

二維動態陣列

之前都是寫的小程式,一直用的靜態陣列,也沒出現問題。可是,最近碰到大型程式和工程,這時就要用動態陣列了。因為靜態陣列時儲存在棧中的,而動態陣列儲存在堆中。計算機的棧只有1m大小,而堆可以理論上達到計算機記憶體大小,可見當大型工程資料量非常大時,必須使用動態陣列了。c 的動態陣列的建立和刪除要用到ne...

動態陣列(一維二維)探秘

因為做leetcode的一道演算法題 需要用到二維陣列,結果自己在理解和使用上有很大誤解,所以單獨拿出來,從記憶體等各方面透徹的梳理一遍。char a char malloc 8 sizeof char memset a,0,8 for int i 0 i 8 i for int i 0 i 8 i...

二維陣列和動態建立陣列

1.二維陣列在記憶體中是以行優先的方式按照一維順序關係存放的。因此對於乙個二維陣列,可以按照乙個 一維指標陣列 來理解,陣列名是他的首位址,這個指標陣列的元素個數就是行數,每個元素是乙個指向二維陣列某一行的指標。例如,宣告乙個二維int型陣列 int array 2 3 可以理解為 array ar...