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 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM