C語言中malloc函數的使用方法

C語言中malloc是動態內存分配函數。
函數原型:void *malloc(unsigned int num_bytes);
參數:num_bytes 是無符號整型,用於表示分配的字節數。
返回值:若是分配成功則返回指向被分配內存的指針(此存儲區中的初始值不肯定),不然返回空指針NULL。void* 表示未肯定類型的指針,void *能夠指向任何類型的數據,更明確的說是指申請內存空間時還不知道用戶是用這段空間來存儲什麼類型的數據(好比是char仍是int或者...)
功能:分配長度爲num_bytes字節的內存塊
注意:當內存再也不使用時,應使用free()函數將內存塊釋放。函數返回的指針必定要適當對齊,使其能夠用於任何數據對象。關於該函數的原型,在之前malloc返回的是char型指針,新的ANSIC標準規定,該函數返回爲void型指針,所以必要時要進行類型轉換。
實例:
#include"stdio.h"

#include"malloc.h"//malloc()函數被包含在malloc.h裏面

int main(void)
{

char*a=NULL;//聲明一個指向a的char*類型的指針
    
a=(char*)malloc(100*sizeof(char));//使用malloc分配內存的首地址,而後賦值給a

if(!a)//若是malloc失敗,能夠獲得一些log
        
{
perror("malloc");
return-1;
}

sprintf(a,"%s","HelloWorld\n");//"HelloWorld\n"寫入a指向的地址
    
printf("%s\n",a);//輸出用戶輸入的數據
    
free(a);//釋放掉使用的內存地址

return0;//例2有無內存泄露?
 
}html

(分配類型 *)malloc(分配元素個數 *sizeof(分配類型))
若是成功,則返回該空間首地址,該空間沒有初始化,若是失敗,則返回0函數

轉自:https://zhidao.baidu.com/question/323407073.html指針

相關文章
相關標籤/搜索