malloc函数的用法
时间: 2023-07-01 22:08:12 浏览: 94
C malloc函数用法
5星 · 资源好评率100%
malloc() 函数是 C 语言标准库中的一种动态内存分配函数,用于在堆区(Heap)中分配一块指定大小的内存空间。其原型如下:
```c
void* malloc(size_t size);
```
其中,`size` 参数表示请求分配的字节数。
该函数的返回值是一个指向分配内存起始地址的指针,如果分配失败则返回 `NULL`。需要注意的是,malloc 返回的内存空间并没有被初始化,其内容是未知的。
使用 malloc 函数分配内存后,应该及时释放该内存,以避免内存泄漏。释放内存使用 free 函数,其原型如下:
```c
void free(void* ptr);
```
其中,`ptr` 参数是之前 malloc 分配内存时返回的指针。注意,指针参数必须是指向 malloc 分配的内存空间的起始地址,否则行为是未定义的。
下面是一个例子,演示了 malloc 函数的基本用法:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int n = 10;
int* arr = (int*)malloc(n * sizeof(int));
if (arr == NULL) {
printf("failed to allocate memory!\n");
return 1;
}
for (int i = 0; i < n; i++) {
arr[i] = i;
}
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
free(arr);
return 0;
}
```
在上面的例子中,我们通过 `malloc(n * sizeof(int))` 分配了一块能够存储 `n` 个整数的内存空间,并将其赋值给指针变量 `arr`。如果分配失败,我们将返回值设置为 `NULL`。接着,我们使用循环初始化了这块内存空间中的每个整数,并输出了它们的值。最后,我们使用 `free(arr)` 释放了这块内存空间。
阅读全文