首页 > 编程笔记

C语言malloc()函数:动态分配堆内存

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() 时,应始终检查其返回值以确保内存分配成功,并在不再需要内存时适当释放它。

推荐阅读