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

3,628 Comments