malloc函数
malloc 向系统申请分配指定size个字节的内存空间。返回类型是 void*
类型。void*
表示未确定类型的指针。C,C++规定,void*
类型可以强制转换为任何其它类型的指针。
函数定义
原型
extern void *malloc(unsigned int num_bytes);
头文件
#include <stdlib.h>
#include <malloc.h>
函数声明
void *malloc(size_t size);
备注:void* 表示未确定类型的指针,void *可以指向任何类型的数据,更明确的说是指申请内存空间时还不知道用户是用这段空间来存储什么类型的数据(比如是char还是int或者其他数据类型)。
calloc 函数
calloc是一个ISO C函数
函数名: calloc
函数原型:
void *calloc(size_t n, size_t size);
功 能:
在内存的动态存储区中分配n个长度为size的连续空间,函数返回一个指向分配起始地址的指针;如果分配不成功,返回NULL
和calloc的区别
calloc在动态分配完内存后,自动初始化该内存空间为零,而malloc不初始化,里边数据是随机的垃圾数据。
free 函数
函数原型
void free(void *p);
作用
释放由p指向的内存区
返回值
free函数无返回值,使用malloc和calloc函数分配的储存单元在用完后一定要释放,否则会因为申请过多内存造成程序崩溃。
memset 函数
函数介绍
void *memset(void *s, int ch, size_t n);
函数解释:将s中前n个字节 (typedef unsigned int size_t )用 ch 替换并返回 s 。
作用
memset:作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法