面试题答案
一键面试malloc函数的作用:在堆上分配指定字节数的内存空间,返回一个指向分配内存起始地址的指针。如果分配失败,返回NULL
。
free函数的作用:释放先前通过malloc
、calloc
或realloc
分配的内存空间。传入的指针必须是由上述函数返回的指针,否则行为未定义。
以下是代码示例:
#include <stdio.h>
#include <stdlib.h>
int main() {
int *arr;
// 使用malloc分配包含10个整数的数组空间
arr = (int *)malloc(10 * sizeof(int));
if (arr == NULL) {
printf("内存分配失败\n");
return 1;
}
// 使用数组
for (int i = 0; i < 10; i++) {
arr[i] = i;
}
// 释放空间
free(arr);
arr = NULL; // 避免悬空指针
return 0;
}