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) 被用来代替 大小(int) 以便在稍后将 *ptr 声明转换为不同的数据类型时使代码更加健壮。
- 如果内存不足,分配可能会失败。在这种情况下,它会返回一个 NULL 指针。因此,您应该包含代码来检查 NULL 指针。
- 请记住,分配的内存是连续的,可以将其视为数组。我们可以使用指针算法来访问数组元素,而不是使用括号 [ ]。我们建议使用 + 来引用数组元素,因为使用增量 ++ 或 += 会更改数组存储的地址 指针.
Malloc 函数还可以用于字符数据类型以及结构等复杂数据类型。