Ubuntu下面C语言数组的动态分配
Ubuntu下面C语言数组的动态分配
看到《Linux C编程实战》(见 )书上67页说
- int n = 10;
- int a[n];
说是不正确的,然后我就检验了一下,发现竟然是正确的,在网上找了一下动态数组的分配,大部分人都是说要用指针,或者malloc进行分配。
我这里写出来是想告诉大家,书上说的不一定完全正确。下面就贴出例子来检验一下。
- #include<stdio.h>
- int main()
- {
- int col,row;//代表行和列
- printf("请输入行数:");
- scanf("%d",&col);
- printf("请输入列数:");
- scanf("%d",&row);
- int a[col][row];//事实证明这样是可以用的,只要在声明的时候里面是有值的就可以
- int i , j ;
- for(i = 0;i < col;i++)
- {
- for(j = 0;j < row;j++)
- {
- printf("请输入第%d行%d列的数:",(i+1),(j+1));
- scanf("%d",&a[i][j]);
- }
- }
- printf("数组为:\n");
- for(i = 0;i < col;i++)
- {
- for(j = 0;j < row;j++)
- {
- printf("\t%d",a[i][j]);
- }
- printf("\n");
- }
- return 0;
- }
运行结果如下
- mars@Ubuntu:~/桌面/C$ gcc demo4_7.c -o demo4_7
- mars@ubuntu:~/桌面/C$ ./demo4_7
- 请输入行数:3
- 请输入列数:2
- 请输入第1行1列的数:1
- 请输入第1行2列的数:2
- 请输入第2行1列的数:3
- 请输入第2行2列的数:4
- 请输入第3行1列的数:5
- 请输入第3行2列的数:6
- 数组为:
- 1 2
- 3 4
- 5 6
|
评论暂时关闭