malloc函數詳解以及例程

描述

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):表示正常退出

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章