-
一切都是一氣呵成的。
#include
#include
main()
int count,*array;Count 是乙個計數器,array 是乙個整數指標,也可以理解為指向整數陣列的第乙個位址
if((array(int *)malloc(10*sizeof(int)))==null)
printf (無法成功分配儲存空間。 );
exit(1);
for (count=0;count〈10;count++) *為陣列賦值*
array[count]=count;
for(count=0;count〈10;count++) *列印陣列元素*
printf(%2d,array[count]);
在上面的示例中,動態分配了 10 個整數儲存區域,然後分配並列印這些區域。 在此示例中,if((array(int *)malloc(10*sizeof(int)))==null) 語句可以分為以下步驟:
1) 為整數分配 10 個連續的儲存空間,並返回指向其起始位址的整數指標。
2) 將這個整數指標位址分配給陣列
3)檢查返回值是否為空
2.免費功能。
由於記憶體區域總是有限的,因此無法不受限制地分配,程式應盡量節省資源,因此當分配的記憶體區域未使用時,應將其釋放,以便其他變數或程式可以使用它。 這就是我們使用免費功能的地方。
函式原型為:void free(void *p)。 其作用是釋放指標 p 所指向的記憶區域。
它的引數 p 必須是在上一次呼叫 malloc 函式或 calloc 函式(另乙個動態分配儲存區域的函式)時返回的指標。 將其他值傳遞給自由函式可能會導致恐慌或其他災難性後果。
注意:這裡重要的是指標的值,而不是用於申請動態記憶體的指標本身。 例:
int *p1,*p2;
p1=malloc(10*sizeof(int));
p2=p1;
免費 (p2) 或免費 (p2)*
Malloc 向 P1 返回乙個值,而 P1 的值被分配給 P2,因此 P1 和 P2 都可以用作自由函式的引數。
malloc 函式分配儲存區域。
free 功能可釋放不再使用的記憶體區域。
因此,這兩個函式可用於動態分配記憶體區域並對其進行簡單的管理。
#include
int plu(int n) 返回 n 的每個數字的數字之和。 >>>More
Heada 和 headb 都是具有前導節點的單鏈表。 在這個演算法中,我們從 heada 鍊表的第 i 個元素中刪除公共元素,然後在 headb 的第 j 個元素之前插入單鏈表 heada。 >>>More