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ææ å
åæ³é²ï¼
}
追é®æ¯8个åèå