歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

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

看到《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