编译器报错:qsort函数对-2147483648、2147483648溢出报错

简介: 编译器报错:qsort函数对-2147483648、2147483648溢出报错

今天在刷leetcode,遇到一个测试案例没过,报错如下

runtime error: signed integer overflow: 1 - -2147483648 cannot be represented in type 'int' [solution.c]

int的范围明明是-2147483648 ~ 2147483647,我想破脑袋也没想到为什么会溢出?

又将代码搬到VS上运行试试,仍然是溢出,报错如下

error C4146: 一元负运算符应用于无符号类型,结果仍为无符号类型

经过网上翻阅帖子,终于在大佬的博客中找到了答案,原文链接如下C语言qsort()函数对-2147483648、2147483648溢出报错_char 47: runtime error: signed integer overflow: -_xx与oo的博客-CSDN博客

原因?

原因就是使用qsort函数时,其中的比较函数cmp,当e2为 -2147483648 时,再减去e1,结果返回就溢出了

int cmp(const void *e1,const void *e2)
{
    return *(int*)e2 - *(int*)e1;
}

如何解决?

将 - 改为 > 即可,这样就不会出现溢出的情况

int cmp(const void *e1,const void *e2)
{
    return *(int*)e2 > *(int*)e1;
}


目录
相关文章
|
芯片
STM32-FreeRTOS源码下载及移植步骤(基于Keil)
STM32-FreeRTOS源码下载及移植步骤(基于Keil)
1678 0
STM32-FreeRTOS源码下载及移植步骤(基于Keil)
|
消息中间件 网络协议 JavaScript
MQTT常见问题之微消息队列mqtt支持ipv6失败如何解决
MQTT(Message Queuing Telemetry Transport)是一个轻量级的、基于发布/订阅模式的消息协议,广泛用于物联网(IoT)中设备间的通信。以下是MQTT使用过程中可能遇到的一些常见问题及其答案的汇总:
|
2月前
|
数据采集 算法 API
2025 电商 API 接口全解析:从接入到实战的通用指南
本文系统解析了电商 API 的核心价值、分类及 2025 年最新趋势,涵盖商品、订单、支付、用户四大模块。内容包括 API 接入的通用前置准备、核心场景实战案例及避坑策略,强调合规性、实时性与智能化应用。适用于企业及开发者高效对接主流电商平台。
|
10月前
|
SQL 弹性计算 运维
云卓越架构:稳定性支柱整体解决方案综述
阿里云卓越架构聚焦于五大支柱,其中稳定性是关键。常见的云上稳定性风险包括架构单点、容灾设计不足和容量规划不合理等。为提升稳定性,需从架构设计时考虑容灾与容错、实施变更时遵循“三板斧”原则(灰度发布、可观测性和可回滚性),并确保快速响应和恢复能力。此外,通过客观度量、主观评估和巡检等方式识别风险,并进行专项治理。识货APP作为成功案例,通过优化容器化改造、统一发布体系、告警系统和扩缩容机制,实现了99.8%的高可用率,大幅提升了业务稳定性。
|
消息中间件 存储 运维
更优性能与性价比,从自建 ELK 迁移到 SLS 开始
本文介绍了 SLS 基本能力,并和开源自建 ELK 做了对比,可以看到 SLS 相比开源 ELK 有较大优势。
56152 243
|
JavaScript 数据管理 编译器
揭秘 ArkTS 与 TypeScript 的神秘差异:鸿蒙系统开发者的必备知识与实战技巧
【10月更文挑战第18天】ArkTS 是华为为鸿蒙系统(HarmonyOS)推出的开发语言,作为 TypeScript 的超集,它针对鸿蒙系统的分布式特性和需求进行了优化和扩展。ArkTS 强化了分布式数据管理、类型系统、编译与运行时性能,并支持声明式 UI 和专为鸿蒙设计的 API,使开发者能够更高效地开发跨设备协同工作的应用。
985 6
|
存储 算法 C语言
c语言实现HashTable
本文介绍了如何在C语言中实现哈希表(HashTable),包括定义节点结构、自定义哈希函数、创建节点、插入节点、搜索节点和删除节点的完整过程。
275 0
c语言实现HashTable
|
存储 C++ 容器
C++入门8——vector的使用
C++入门8——vector的使用
1138 0
|
计算机视觉 Python
cv2.polylines
cv2.polylines
700 1
|
算法 调度
FreeRTOS入门教程(互斥锁的概念和函数使用)
FreeRTOS入门教程(互斥锁的概念和函数使用)
909 0

热门文章

最新文章