c中的malloc函数
程序中使用各种变量来保存被处理数据和各种状态信息,变量使用前必须
先定义安排好存储空间。那些全局变量和静态变量的存储在编译时就确定了
对于局部变量在定义时就分配存储单元了,这种变量的大小是静态确定的
静态方式安排存储优点,实现方便,效率高。但是在数量无法确定时,很难搞
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 }