一、首先回顧一下內存分配的有關事實。全部的程序都必須留出足夠內存來存儲他們使用的數據。一些內存分配是自動完成的。如:數組
float x;ide
char place[]="dancing oxen creek".函數
因而系統將留出存儲float或者字符串足夠的內存空間,也可明確要求確切的內存,int a[100];這一聲明留出100個內存位置。每一個位置可存儲一個int值。c的功能遠非如此。能夠在程序運行時分配更多的內存。主要工具函數就是malloc(),參數:所需字節數。而後malloc()找到可用內存中一個大小適合的塊。內存是匿名的,也就是說malloc()分配了內存,但沒有爲他指定名字。然而它卻能夠返回那塊內存第一個字節的地址。所以,能夠把該地址賦值給一個指針變量,並使用該指針來訪問那塊內存。malloc()函數可用來返回數組指針、結構指針等等。咱們使用malloc()來建立一個數組,能夠在程序運行時使用malloc()請求一個存儲塊,另外還須要一個指針來存放該塊在內存中的位置。工具
double * ptd;指針
ptd=(double*)malloc(30 * sizeof(double));請求30個double類型的空間,把ptd指向該空間的位置。通常來講,對於每一個malloc()函數調用,應該調用一次free(),free()的參數是malloc()返回的地址,它釋放先前分配的內存。內存