malloc函数详解

admin 30 0

`malloc` 是 C 语言中的一个函数,用于在堆区动态分配内存,它的全称是 "memory allocation"。

函数原型:

```c

void* malloc(size_t size);

参数:

* `size_t size`:要分配的内存大小,单位是字节。

返回值:

* 如果分配成功,`malloc` 返回一个指向被分配内存的指针。
* 如果分配失败,`malloc` 返回 `NULL`。

使用 `malloc` 分配的内存必须手动释放,否则会造成内存泄漏。释放内存的函数是 `free`。

示例:


```c
#include <stdio.h>
#include <stdlib.h>

int main() {
    int *ptr = (int*) malloc(sizeof(int));  // 分配一个 int 的内存空间
    if (ptr == NULL) {
        printf("Memory allocation failed!\n");
        return 1;  // 返回错误代码
    }
    *ptr = 42;  // 在分配的内存中存储一个值
    printf("The value is: %d\n", *ptr);  // 输出存储的值
    free(ptr);  // 释放内存
    return 0;
}

注意事项:

1. `malloc` 分配的内存不会自动清零,所以如果你需要一个清零的内存区域,可以使用 `calloc` 函数。

2. 使用 `malloc` 分配的内存在使用完毕后必须手动释放,否则会造成内存泄漏,释放内存的函数是 `free`。

3. 在释放内存后,不要继续使用该内存区域,因为其内容是不确定的。