描述
C 庫函數 void *malloc(size_t size) 分配所需的內存空間,並返回一個指向它的指針。
聲明
下面是 malloc() 函數的聲明。void *malloc(size_t size)
參數
size -- 內存塊的大小,以字節爲單位。
返回值
如果內存請求成功,則返回一個(void *)類型的指針 。如果請求失敗,則返回 NULL
提示:程序裏一定要判斷下是否分配失敗,以及失敗的處理方法。可根據自己需求對返回的(void *)類型指針做強制類型轉化。
頭文件
該庫函數所在的頭文件,#include <malloc.h>
老相好
分配之後,需要對所分配的內存釋放。函數原型:void free(void *ptr)
小知識:字符串常量代表一塊包含字符串中所有字符以及一個空字符(‘\0’)的內存區域的地址。
例程:功能是分配一塊內存來存放兩個字符串的值,並打印出來,之後釋放該內存塊
#include <stdio.h>
#include <malloc.h> //malloc函數頭文件
#include <string.h> //strlen函數頭文件
#include <stdlib.h> //exit函數頭文件
char Str1[10]="123";
char Str2[10]="789";
int main(void) {
char *r;
r=(char *)malloc(strlen(Str1)+strlen(Str2)+sizeof(char));
if(NULL == r) //分配失敗
{
//處理函數
exit(1); //表異常退出
}
strcat(r,Str1);
strcat(r,Str2);
printf("%s\n",r);
free(r);
return 0;
}
輸出結果:123789
exit(非0值):表異常退出
exit(0):表示正常退出