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