程序中使用各种变量来保存被处理数据和各种状态信息,变量使用前必须
先定义安排好存储空间。那些全局变量和静态变量的存储在编译时就确定了
对于局部变量在定义时就分配存储单元了,这种变量的大小是静态确定的
静态方式安排存储优点,实现方便,效率高。但是在数量无法确定时,很难搞
c提供了动态存储管理集中 malloc函数来动态分配内存,但是最后也得释放free函数
下面是一个例子,假设你n个数求和,n的范围无法估计,就得动态实现求和
1 #include2 #include 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 }