推荐答案
// www.javascriptcn.com code example
#include <stdio.h>
#include <stdlib.h>
int main() {
int *arr;
int n = 5;
// 使用 malloc 分配内存
arr = (int *)malloc(n * sizeof(int));
if (arr == NULL) {
printf("内存分配失败\n");
return 1;
}
// 使用分配的内存
for (int i = 0; i < n; i++) {
arr[i] = i + 1;
}
// 打印数组
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
// 释放内存
free(arr);
return 0;
}本题详细解读
malloc 函数的基本用法
malloc 是 C 语言中用于动态分配内存的函数。它的原型定义在 <stdlib.h> 头文件中,函数签名如下:
void* malloc(size_t size);
- 参数:
size表示要分配的内存大小,单位是字节。 - 返回值:返回一个指向分配内存的指针。如果分配失败,返回
NULL。
使用 malloc 的步骤
- 包含头文件:在使用
malloc之前,需要包含<stdlib.h>头文件。 - 分配内存:调用
malloc函数,传入需要分配的内存大小。通常使用sizeof运算符来计算所需的内存大小。 - 检查返回值:
malloc返回的指针需要检查是否为NULL,以确保内存分配成功。 - 使用内存:分配成功后,可以使用指针访问和操作分配的内存。
- 释放内存:使用
free函数释放分配的内存,避免内存泄漏。
示例代码解析
在示例代码中:
arr = (int *)malloc(n * sizeof(int));分配了n个int类型大小的内存空间。if (arr == NULL)检查内存是否分配成功。free(arr);释放分配的内存。
注意事项
- 类型转换:
malloc返回的是void*类型的指针,通常需要将其转换为所需的指针类型。 - 内存泄漏:使用
malloc分配的内存必须在使用完毕后通过free释放,否则会导致内存泄漏。 - 内存对齐:
malloc分配的内存是适当对齐的,可以用于任何数据类型。