C 库中的 malloc() 函数及示例
C 语言中的 malloc 是什么?
malloc() 函数代表内存分配。它是一个用于动态分配内存块的函数。它保留指定大小的内存空间,并返回指向内存位置的空指针。返回的指针通常是 void 类型。这意味着我们可以将 malloc 函数分配给任何指针。
语法
ptr = (cast_type *) malloc (byte_size);
此处,
- ptr 是一个 cast_type 的指针。
- malloc 函数返回一个指向 byte_size 分配内存的指针。
Example: ptr = (int *) malloc (50)
当此语句成功执行时,将保留 50 字节的内存空间。保留空间第一个字节的地址被赋给 int 类型的指针 ptr。
考虑另一个 malloc 实现的例子
#include <stdlib.h> int main(){ int *ptr; ptr = malloc(15 * sizeof(*ptr)); /* a block of 15 integers */ if (ptr != NULL) { *(ptr + 5) = 480; /* assign 480 to sixth integer */ printf("Value of the 6th integer is %d",*(ptr + 5)); } }
输出
Value of the 6th integer is 480
- 请注意,使用了 sizeof(*ptr) 而不是 sizeof(int),以使代码在 *ptr 声明稍后被转换为不同数据类型时更加健壮。
- 如果内存不足,分配可能会失败。在这种情况下,它会返回一个 NULL 指针。因此,您应该包含代码来检查 NULL 指针。
- 请记住,分配的内存是连续的,可以将其视为一个数组。我们可以使用指针算术来访问数组元素,而不是使用方括号 [ ]。我们建议使用 + 来引用数组元素,因为使用递增 ++ 或 += 会更改 指针 存储的地址。
malloc 函数也可以用于字符数据类型以及结构等复杂数据类型。