面试题答案
一键面试#include <stdio.h>
#include <stdlib.h>
// 分配内存的函数
void allocateMemory(int** ppArray) {
*ppArray = (int*)malloc(5 * sizeof(int));
if (*ppArray == NULL) {
fprintf(stderr, "内存分配失败\n");
exit(EXIT_FAILURE);
}
for (int i = 0; i < 5; i++) {
(*ppArray)[i] = i + 1;
}
}
// 释放内存的函数
void freeMemory(int** ppArray) {
if (*ppArray != NULL) {
free(*ppArray);
*ppArray = NULL;
}
}
int main() {
int* pArray = NULL;
allocateMemory(&pArray);
for (int i = 0; i < 5; i++) {
printf("%d ", pArray[i]);
}
printf("\n");
freeMemory(&pArray);
return 0;
}
上述代码实现了以下功能:
allocateMemory
函数动态分配一个包含5个整数的数组,并让传入的二级指针指向该数组,同时给数组元素赋值。freeMemory
函数释放动态分配的内存,并将指针置为NULL
。- 在
main
函数中调用这两个函数,并输出动态分配数组中的值。
注意,在实际应用中,还需要更多的错误处理和代码健壮性方面的考虑。