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)
sprintf(a,"%s","helloworld\n"); //"helloworld\n"寫入a指向的位址
printf("%s\n",a); //輸出使用者輸入的資料
free(a); //釋放掉使用的記憶體位址
return 0;
}
malloc函式 new和malloc的區別
1 申請的記憶體所在位置 new操作符從自由儲存區上為物件動態分配記憶體空間,而malloc函式從堆上動態分配記憶體。自由儲存區是c 基於new操作符的乙個抽象概念,凡是通過new操作符進行記憶體申請,該記憶體即為自由儲存區。而堆是作業系統中的術語,是作業系統所維護的一塊特殊記憶體,用於程式的記憶體...
函式內部使用malloc問題彙總
在函式裡malloc,如何將位址傳到函式外?一種是用return把位址帶出來,也可以用二級指標將函式內的位址帶出 func struct node p 這個是對指標p指向的節點進行修改 func struct node p 這個是對p指標本身進行修改 一般會改變p的指向 include includ...
malloc函式的問題
首先我們看看以下 include include include define size 0x40000 十六進製制的表示方法,等於十進位制262 144,你們要習慣用十六進製制,因為兩個十六進製制剛好是乙個位元組 int main 就是以上 你們使用vc和turbo c 分別編譯,看生成檔案的大小...