c语言malloc函数

C

Posted by JS on May 24, 2023

malloc

动态内存分配函数,用于申请一块连续的指定大小的内存块区域以void*类型返回分配的内存区域地址。

函数原型

extern void *malloc(unsigned int num_bytes); //分配长度为num_bytes字节的内存块

头文件

#include <malloc.h>

返回值

如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。

注意事项

  • malloc函数的返回的是无类型指针,在使用时一定要强制转换为所需要的类型。
  • 在使用malloc开辟空间时,使用完成一定要释放空间,如果不释放会造内存泄漏。
  • 在使用malloc函数开辟的空间中,不要进行指针的移动,因为一旦移动之后可能出现申请的空间和释放空间大小的不匹配。

使用形式

	int *p = NULL;
	int n = 10;
	p = (int *)malloc(sizeof(int)*n); //指针自身 = (指针类型*)malloc(sizeof(指针类型)*数据数量)

free函数

int main()
{
	int *p = (int *)malloc(sizeof(int));
	*p = 100;
	free(p); //释放malloc(或calloc、realloc)函数给指针变量分配的内存空间
	p = NULL; //使用后该指针变量一定要重新指向NULL,防止悬空指针(失效指针)出现,有效规避错误操作。
	return 0;
}