二維陣列動態分配記憶體

2021-08-25 06:05:35 字數 1766 閱讀 6058

#對二維陣列分配動態空間

###1.已知二維陣列的行(第一維)

#include #include /* 已知陣列的行數

列數由終端輸入

*/int main(void)

{ int i,j,num;

int *a[3];//已知陣列有3行

printf("請輸入二位陣列的列數:\n");

scanf("%d",&num);//列數由終端輸入

for(i=0;i<3;i++)

a[i] = (int *)malloc(sizeof(int)*num);//分配每一行中列的空間

for(i=0;i<3;i++)

{ for(j=0;j###2.已知二維陣列的列(第二維)

#include #include /* 已知陣列的列數

行數由終端輸入

*/int main(void)

{ int i,j,num;

int (*a)[3];//已知陣列有3列

printf("請輸入二位陣列的行數:\n");

scanf("%d",&num);//行數由終端輸入

a = (int (*)[3])malloc(sizeof(int *)*num);//分配行的空間

for(i=0;i###3.已知陣列的行數,一次分配所有空間

#include #include /* 已知陣列的行數

一次分配所有空間

*/int main(void)

{ int i,j,num;

int *a[3];//已知陣列有3行

printf("請輸入二位陣列列數:\n");

scanf("%d",&num);//行數由終端輸入

a[0] = (int *)malloc(sizeof(int)*num*3);//分配總的空間,以a[0]為起始位址

for(i=0;i###4.行列都未知

#include #include /*

行列都未知

*/int main(void)

{ int i,j,num,n;

int **a;

printf("請輸入二位陣列的行數:\n");

scanf("%d",&num);//行數由終端輸入

printf("請輸入二位陣列的列數:\n");

scanf("%d",&n);//列數由終端輸入

a = (int **)malloc(sizeof(int *) * num);//分配指標陣列

for(i=0;i###5.行列都未知,一次分配所有空間

#include #include /* 行列都未知

一次分配所有空間

*/int main(void)

{ int i,j,num,n;

int **a;

printf("請輸入二位陣列行數:\n");

scanf("%d",&num);//行數由終端輸入

printf("請輸入二位陣列列數:\n");

scanf("%d",&n);//列數由終端輸入

a = (int **)malloc(sizeof(int *) * num);//分配指標陣列

a[0] = (int *)malloc(sizeof(int) * num * n);//分配總的空間,以a[0]為起始位址

for(i=0;i無需說明的說明:這次不再執行了!!

二維陣列動態分配記憶體

在robert sedgewick所著的algorithm in c中,把二維陣列當成陣列的陣列為它動態分配記憶體。首先,分配乙個指標的陣列,然後為每一行分配記憶體。函式定義 void malloc2d int r,int c,int size void free2d void arr,int r ...

二維陣列動態分配記憶體

c 二維陣列動態分配和釋放 1 已知第二維 code 1 char a n 指向陣列的指標 a char n malloc sizeof char m printf d n sizeof a 4,指標 printf d n sizeof a 0 n,一維陣列 free a 2 已知第一維 code ...

動態分配二維陣列

1.c語言動態分配二維陣列 1 已知第二維 code 1 char a n 指向陣列的指標 a char n malloc sizeof char m printf d n sizeof a 4,指標 printf d n sizeof a 0 n,一維陣列 free a 2 已知第一維 code ...