文件名:memory_utils.c
#include <stdio.h>
#include <stdlib.h>
// 封装malloc,自动检查分配结果
void* safe_malloc(size_t size) {
void* ptr = malloc(size);
if (!ptr) {
printf("内存分配失败:malloc(%zu) failed\n", size);
exit(EXIT_FAILURE); // 直接退出或根据需求返回NULL
}
return ptr;
}
// 封装calloc,自动检查分配结果
void* safe_calloc(size_t nmemb, size_t size) {
void* ptr = calloc(nmemb, size);
if (!ptr) {
printf("内存分配失败:calloc(%zu, %zu) failed\n", nmemb, size);
exit(EXIT_FAILURE);
}
return ptr;
}
// 使用示例
int main() {
// 无需手动检查,分配失败会自动处理
int* pump_speed = (int*)safe_malloc(sizeof(int));
*pump_speed = 1000;
printf("pump_speed: %d\n", *pump_speed);
// 对于数组分配也同样简洁
int* speeds = (int*)safe_calloc(5, sizeof(int)); // 5个int,初始化为0
free(pump_speed);
free(speeds);
return 0;
}
// 无需手动检查,分配失败会自动处理
int* pump_speed = (int*)safe_malloc(sizeof(int));
*pump_speed = 1000;
这样就完成了指针变量的声明,内存分配,内存的分配结果检查。
C语言指针变量内存分配封装简化实例
169

被折叠的 条评论
为什么被折叠?



