malloc動態申請記憶體

2021-07-15 08:43:46 字數 1121 閱讀 7587

1:malloc概述

malloc(num)動態申請num位元組的記憶體空間,函式申請成功返回記憶體的起始位址(void型),申請不成功返回null指標,malloc不初始化記憶體空間;calloc(type,num)函式會初始化申請的記憶體空間為0;使用完申請的記憶體後需要用free(*p)釋放記憶體並且將指標p=null,防止野指標;

以下**在ubuntu10.04上驗證,gcc編譯器;

2:一維記憶體動態申請

#include #include int main()

{ char i = 0;

char num = 10;

char *ptr = null;

ptr = (char *)malloc(sizeof(char)*(num+1)); //多申請乙個位元組,用於存放字串結束符'\0'

//ptr = (char *)calloc(num+1,sizeof(char)); //申請num*sizeof(char)的空間並且初始化記憶體空間為0,如果空間是指標型別的變數,則為null

if(ptr != null) //申請成功

{ for(i=0;i

3:二維記憶體動態申請

#include #include #include int main()

{ char i = 0,j = 0;

char m = 5; //行

char n = 3; //列

char num = 'a';

char **ptr = null; //定義乙個雙指標

ptr = (char **)malloc(sizeof(char *)*m); //動態申請(sizeof(char *))個位元組的空間存放指標,這些指標指向二維陣列中每行的首位址

//ptr = (char *)calloc(m,sizeof(char *)); //申請num*sizeof(char)的空間並且初始化指標型別為null

if(ptr == null)

exit(1); //結束程序

for(i=0;i

關於動態申請記憶體malloc的知識

關於malloc申請記憶體的函式 一 定義 malloc函式是一種分配長度為num bytes位元組的記憶體塊的函式,可以向系統申請分配指定size個位元組的記憶體空間。malloc的全稱是memory allocation,中文叫動態記憶體分配,函式返回的型別是void 型別。void 表示未確定...

malloc申請堆記憶體

malloc申請空間時,記錄其空間大小 其空間上方,有乙個資料頭,頭部資訊就記錄了申請空間的大小 當呼叫free函式時,即需要讀取頭部資訊得到需要釋放的位元組數 malloc申請的空間,一 申請的記憶體 小的靠近資料區 大的靠近棧區,而中間的是 無人區 malloc工作在user space 使用者...

malloc函式申請動態記憶體的用法

咱們開門見山吧,直接上 更容易理解 an highlighted block 1 include 2 include 3 include 45 struct student 6 1011 intmain 1220 21 p student name tom 22 p student age 23 2...