C 語言動態記憶體配置教學:malloc、free 等函數 - GT Wang
文章推薦指數: 80 %
這是使用 malloc 與 free 配置一維動態陣列的例子。
#include
C語言的動態記憶體配置可以讓程式在需要使用到大量的記憶體時,動態的取得更多的記憶體空間,在使用完之後也可以將不再需要使用的記憶體釋出,也就是說它可以讓程式設計者自行管理記憶體的使用。
C語言動態記憶體配置的相關函數位於stdlib.h這個C語言的標準函式庫中,以下是主要的幾個函數:
void*malloc(size_tsize);
void*calloc(size_tnmemb,size_tsize);
voidfree(void*ptr);
void*realloc(void*ptr,size_tsize);
這幾個函數的功用如下:
malloc函數
malloc代表memoryallocation,用來配置指定大小的記憶體空間,傳回新空間第一個位元組的記憶體位址,配置的空間處於尚未初始化的狀態。
calloc函數
calloc代表contiguousallocation,用來配置陣列用的記憶體空間,傳回新空間第一個位元組的記憶體位址,配置的空間會被初始化為0。
free函數
釋放之前使用malloc或calloc函數所配置的記憶體空間。
realloc函數
改變已配置記憶體空間的大小。
這些函數的詳細說明,可以參考malloc(3)的manpage:
man3malloc
以下是一些C語言配置與管理記憶體的範例程式碼。
典型記憶體配置
C語言中最常被使用的記憶體管理方式就是使用malloc配置記憶體,並配合free來釋放記憶體。
一維陣列
這是使用malloc與free配置一維動態陣列的例子。
#include
LeaveaReply取消回覆
留言*
Name*
Email*
Website
搜尋
分類Arduino(5)
BeagleBoneBlack(1)
DIY(54)
Linux(317)
macOS(33)
Octave(15)
Perl(12)
R(47)
Windows(98)
WordPress(16)
個人(15)
免費(35)
兒童(30)
實用工具(85)
手機(13)
技巧(45)
有趣(99)
樹莓派(57)
物聯網(55)
玄學(11)
生活(209)
程式設計(137)
統計學(8)
網頁空間(36)
網頁開發(128)
虛擬化(7)
農業(42)
遊戲(9)
開箱(132)
雲端(4)
宗教
如何戒邪淫、遠離婚外情
戒淫寶典:《壽康寶鑑》白話有聲書
公益
智邦公益網
台灣世界展望會
Yahoo奇摩公益
igiving公益網
家扶基金會
©2022G.T.Wang
延伸文章資訊
- 1給指標malloc分配空間後就等於陣列嗎? - w3c學習教程
不過既然這樣,那它應該算是個陣列吧。 所以,一般我們都用“動態陣列”這種名字來稱呼這種東西。 要講清楚這個東西,涉及到malloc函式,指標型別和“[ ] ...
- 2C 語言動態記憶體配置教學:malloc、free 等函數 - GT Wang
這是使用 malloc 與 free 配置一維動態陣列的例子。 #include <stdio.h> #include <stdlib.h> int main() { // 用來管理動態記憶體的...
- 3怎么定義指向指標陣列(malloc的空間)的指標? - 有解無憂
如 int *p=(int *)malloc(sizeof(int)); p就指向了int 型別的陣列。 像 int *p[10];這樣的陣列 怎么定義一個指標p,怎么malloc一塊空間回傳地...
- 4malloc動態分配陣列以及指標陣列大小 - 程式人生
對於指標陣列 int n,i,j; char *s[15]; scanf("%d",&n); getchar(); for(i=0;i<n;++i) { gets(a); s[i]=(char*...
- 5進階指標
雖然陣列型態無法放在指定運算⼦子左⽅方,但是指標變. 數可以: ... 字串陣列是⼀一個指向char * 的指標陣列: ... 但是在使⽤用malloc 這類函式動態配置記憶體後,該.