程序中使用各種變量來保存被處理數據和各種狀態信息,變量使用前必須
先定義安排好存儲空間。那些全局變量和靜態變量的存儲在編譯時就確定了
對於局部變量在定義時就分配存儲單元了,這種變量的大小是靜態確定的
靜態方式安排存儲優點,實現方便,效率高。但是在數量無法確定時,很難搞
c提供了動態存儲管理集中 malloc函數來動態分配內存,但是最后也得釋放free函數
下面是一個例子,假設你n個數求和,n的范圍無法估計,就得動態實現求和
1 #include<stdio.h> 2 #include<stdlib.h> 3 int main() 4 { 5 int n,sum ,*p; 6 scanf("%d",&n); 7 if((p = (int *)malloc(n*sizeof(int))) == NULL) 8 { 9 printf("Sorry!\n"); 10 exit(1); 11 } 12 13 for(int i = 0;i < n;i++) 14 scanf("%d",p+i); 15 sum = 0; 16 17 for(int i = 0;i < n;i++) 18 sum += *(p+i); 19 printf("sum = %d\n",sum); 20 free(p); 21 22 return 0; 23 }