C语言中错误处理的基本实现

  • 引入头文件依赖:
    • 标准输入输出流:#include <stdio.h>
    • 获取错误信息:#include <string.h>,strerror通过这个头文件获取
    • 文件流:#include <stdlib.h>,fprintf通过这个头文件获取
    • 错误编号:#include <errno.h>,errno这个错误常量编号通过这个头文件获取
  • 申请内存:void* p = malloc(0xffffffffffff);,这里我们申请的内存非常巨大,在大部分电脑上都会出错
  • 判断内存地址是否为空:if (p == NULL){
    • 打印错误编号:fprintf(stderr, "malloc error no: %d\n", errno);
    • 打印错误信息:fprintf(stderr, "malloc error info: %s\n", strerror(errno));
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <errno.h>

int main(){
    void* p = malloc(0xffffffffffff);
    if (p == NULL){
        fprintf(stderr, "malloc error no: %d\n", errno);
        fprintf(stderr, "malloc error info: %s\n", strerror(errno));
        return -1;
    }

    return 0;
}

输出结果:

malloc error no: 12
malloc error info: Cannot allocate memory

相关推荐

  1. C语言错误处理基本实现

    2024-05-13 08:38:03       28 阅读
  2. Go语言常见HTTP处理错误

    2024-05-13 08:38:03       32 阅读
  3. C语言高级指导】错误处理

    2024-05-13 08:38:03       25 阅读
  4. C语言如何避免循环初值错误问题?

    2024-05-13 08:38:03       37 阅读
  5. 探索 Golang 错误处理机制与最佳实践

    2024-05-13 08:38:03       63 阅读
  6. C#错误与异常处理

    2024-05-13 08:38:03       26 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-13 08:38:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-13 08:38:03       101 阅读
  3. 在Django里面运行非项目文件

    2024-05-13 08:38:03       82 阅读
  4. Python语言-面向对象

    2024-05-13 08:38:03       91 阅读

热门阅读

  1. MySQL树形表查询优化

    2024-05-13 08:38:03       29 阅读
  2. PHP类和对象扩展[构造函数,析构函数]

    2024-05-13 08:38:03       31 阅读
  3. Spring 类加载器

    2024-05-13 08:38:03       20 阅读
  4. vue3+ts实现文件上传

    2024-05-13 08:38:03       23 阅读
  5. Gitee仓库创建与使用

    2024-05-13 08:38:03       37 阅读
  6. 速盾:jquery是用cdn快,还是保存本地快?

    2024-05-13 08:38:03       31 阅读