首页 > 编程笔记
C语言malloc()函数:动态分配堆内存
malloc() 是 C语言的一个标准库函数,定义在
malloc() 函数用于在堆上分配指定大小的未初始化的内存,它是动态内存分配的基础,并允许程序在运行时请求所需数量的内存。
malloc() 函数的原型如下:
注意,在使用 malloc() 分配内存后,由程序员自己负责管理和释放该内存。当不再需要分配的内存时,必须使用 free() 函数将其释放,否则可能导致内存泄漏。
【实例】以下是一个使用 malloc() 的 C语言代码示例,该示例分配了一个整数数组,并在释放内存之前使用它。
<stdlib.h>
头文件中。malloc() 函数用于在堆上分配指定大小的未初始化的内存,它是动态内存分配的基础,并允许程序在运行时请求所需数量的内存。
malloc() 函数的原型如下:
void* malloc(size_t size);
参数
size:要分配的字节大小。返回值
如果分配成功,则返回指向分配内存的指针;如果分配失败(例如,因为没有足够的可用内存),则返回 NULL。注意,在使用 malloc() 分配内存后,由程序员自己负责管理和释放该内存。当不再需要分配的内存时,必须使用 free() 函数将其释放,否则可能导致内存泄漏。
【实例】以下是一个使用 malloc() 的 C语言代码示例,该示例分配了一个整数数组,并在释放内存之前使用它。
#include <stdlib.h> #include <stdio.h> int main() { int *arr; int n = 5; // 使用 malloc 分配 5 个整数的内存空间 arr = (int*) malloc(n * sizeof(int)); if (arr == NULL) { fprintf(stderr, "Memory allocation failed!\n"); return 1; } // 初始化并打印数组 for (int i = 0; i < n; i++) { arr[i] = i * i; printf("%d ", arr[i]); } printf("\n"); // 释放分配的内存 free(arr); return 0; }再次强调,实际代码中使用 malloc() 时,应始终检查其返回值以确保内存分配成功,并在不再需要内存时适当释放它。