C語言定義元素不確定的數組
我想在C語言中定義一個數組,要求數組中元素的個數由用戶確定,即用戶先輸入一個數,然後再定義一個元素個數與用戶輸入的數相同的數組,下面的寫法不正確:
int a;
scanf("%d",&a);
int b[a];
請問該怎麼寫?謝謝!
最佳回答:
使用動態數組即可。
1、使用malloc函數,先分配第一維的大小,然後再循環分配每一維的大小。
2、例程,分配3行4列二維數組:
#include
#include
int main()
{
int **a;
int i, j;
a = (int**)malloc(sizeof(int*)*3);//為二維數組分配3行
for (i = 0; i < 3; ++i){//為每列分配4個大小空間
a[i] = (int*)malloc(sizeof(int)*4);
}
//初始化
for (i = 0; i < 3; ++i){
for (j = 0; j < 4; ++j){
a[i][j] = i+j;
}
}
//輸出測試
for (i = 0; i < 3; ++i){
for (j = 0; j < 4; ++j){
printf ("%d ", a[i][j]);
}
printf ("\n");
}
//釋放動態開辟的空間
for (i = 0; i < 3; ++i){
free(a[i]);
}
free(a);
return 0;
}
/*
輸出:
0 1 2 3
1 2 3 4
2 3 4 5
*/