#對二維陣列分配動態空間
###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 ...