歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Ubuntu下面C語言數組的動態分配

Ubuntu下面C語言數組的動態分配

日期:2017/3/1 10:08:07   编辑:Linux編程

看到《Linux C編程實戰》(見 http://www.linuxidc.com/Linux/2011-01/31315.htm )書上67頁說

  • int n = 10;
  1. int a[n];

說是不正確的,然後我就檢驗了一下,發現竟然是正確的,在網上找了一下動態數組的分配,大部分人都是說要用指針,或者malloc進行分配。

我這裡寫出來是想告訴大家,書上說的不一定完全正確。下面就貼出例子來檢驗一下。

  1. #include<stdio.h>
  2. int main()
  3. {
  4. int col,row;//代表行和列
  5. printf("請輸入行數:");
  6. scanf("%d",&col);
  7. printf("請輸入列數:");
  8. scanf("%d",&row);
  9. int a[col][row];//事實證明這樣是可以用的,只要在聲明的時候裡面是有值的就可以
  10. int i , j ;
  11. for(i = 0;i < col;i++)
  12. {
  13. for(j = 0;j < row;j++)
  14. {
  15. printf("請輸入第%d行%d列的數:",(i+1),(j+1));
  16. scanf("%d",&a[i][j]);
  17. }
  18. }
  19. printf("數組為:\n");
  20. for(i = 0;i < col;i++)
  21. {
  22. for(j = 0;j < row;j++)
  23. {
  24. printf("\t%d",a[i][j]);
  25. }
  26. printf("\n");
  27. }
  28. return 0;
  29. }

運行結果如下

  1. mars@Ubuntu:~/桌面/C$ gcc demo4_7.c -o demo4_7
  2. mars@ubuntu:~/桌面/C$ ./demo4_7
  3. 請輸入行數:3
  4. 請輸入列數:2
  5. 請輸入第1行1列的數:1
  6. 請輸入第1行2列的數:2
  7. 請輸入第2行1列的數:3
  8. 請輸入第2行2列的數:4
  9. 請輸入第3行1列的數:5
  10. 請輸入第3行2列的數:6
  11. 數組為:
  12. 1 2
  13. 3 4
  14. 5 6
Copyright © Linux教程網 All Rights Reserved