C库中的malloc()函数及其示例

发布于:2021-02-07 14:10:20

0

644

0

C malloc() 示例 数据库

C中的malloc是什么?

malloc()函数代表内存分配。它是一个用于动态分配内存块的函数。它保留指定大小的内存空间,并返回指向内存位置的空指针。返回的指针通常是void类型。这意味着我们可以将malloc函数分配给任何指针。

语法

ptr = (cast_type *) malloc (byte_size);

  • ptr是一个cast类型的指针。

  • malloc函数返回一个指向字节大小的分配内存的指针。

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

  1. 注意,sizeof(*ptr)被用来代替sizeof(int),以便在以后将*ptr声明类型转换为不同的数据类型时使代码更加健壮。

  2. 如果内存不足,分配可能会失败。在本例中,它返回一个空指针。因此,应该包含检查空指针的代码。

  3. 请记住,分配的内存是连续的,可以将其视为数组。我们可以使用指针算法来访问数组元素,而不是使用括号[]。我们建议使用+来引用数组元素,因为使用incrementation++或+=会更改指针存储的地址。

Malloc函数还可以用于字符数据类型以及复杂数据类型(如结构)。