C++编译错误与运行时错误

article/2025/11/5 16:37:50

笔试题里经常会有这样的题目,让你判断运行时错误还是编译错误。在这里将它总结一下。

在调试过程中,运行时错误是最麻烦的问题。因为编译错误可以由编译器检查出来,而大多数编译器对运行时错误却无能为力。查错和纠错的工作完全由用户自己来完成。

运行时错误还分为两种:

1、一种是由于考虑不周或输入错误导致程序异常(Exception),比如数组越界访问,除数为零,堆栈溢出等等。
2、另一种是由于程序设计思路的错误导致程序异常或难以得到预期的效果。

需要注意的是,一个重要的运行时错误是:使用失效的迭代器

对于第一类运行时错误,我们不需要重新设计解决问题的思路,认为当前算法是可行的、有效的。我们只需要找出输入的错误或考虑临界情况的处理方法即可。
对于第二类运行时错误,不得不遗憾地说,一切都要从头再来。

语法错误的位置能很快地被编译器找到,而运行时错误的位置却很难被我们发现。即使我们一条条地检查语句,也未必能检查出什么。

什么样的是运行时错误?

由于编译器无法发现运行时错误,这些错误往往是在程序运行时以五花八门的形式表现出来。下面就是典型的几种因运行时错误引起的问题:

(1)WindowsXP错误报告
这里写图片描述
(2)内存不能为Read/Written
这里写图片描述
(3)非法操作
这里写图片描述
(4)Debug错误
这里写图片描述


http://chatgpt.dhexx.cn/article/Q6PuVHuv.shtml

相关文章

下面的程序运行时哪里会出现错误

1、下面的程序运行时哪里会出现错误:struct S { int i; int * p; }; int main() { S s; int * p &s.i; p[0] 4; p[1] 3; s.p p; s.p[1] 1; s.p[0] 2; return 0; } 【题目解析】 这道题考的是对结构体内存使用情况的理解。在32位的操作系统中,i…

Word粘贴文字时遇到报错:运行时错误‘53’:文件未找到:mathpage.WLL 解决方案

Word粘贴文字时遇到报错: 运行时错误‘53’: 文件未找到:mathpage.WLL 问题: 每次装完MathType后,在word里面进行粘贴操作时,总是出现“运行时错误‘53’:文件未找到:MathPage.WLL…

MathType 运行时错误‘53’:文件未找到:MathPage.WLL

问题描述 环境 MathType7.4Microsoft Office 365Windows 11 问题 情景1. Microsoft Word 启动时显示 Please reload Word to load MathType addin properly 情景2. 安装MathType后在 Microsoft Word 中使用复制粘贴时报错 运行时错误‘53’ 情景3. 在 Microsoft Word 中使…

JAVA的编译时错误和运行时错误

1. 要区分编译时错误和运行时错误,就应该先明白什么是编译?什么是运行? 首先,先看一下这张图: 编译期就是将我们写的java源代码交给编译器执行的过程,起翻译的作用,该过程主要对java源代码的…

【Word】MathType 运行时错误‘53’:文件未找到:MathPage.WLL

问题描述 1. 环境: MathType7.4Microsoft Office 365Windows 11 2. 问题 情景1. Microsoft Word 启动时显示 Please reload Word to load MathType addin properly 情景2. 安装MathType后在 Microsoft Word 中使用复制粘贴时报错 运行时错误‘53’ 情景3. 在 M…

运行程序报错怎么办?

Dev c中常见的报错有几种 一. ld return 1 exit status 这种报错是最常见的,下面是可能的原因 1.库函数拼写错误。如:printf,scanf,等 2.定义的函数名在调用时,函数名拼写错误(这个主要自定义函数啊啥的可能比较多…

java clh队列_J.U.C|同步队列(CLH)

一、写在前面 在上篇我们聊到AQS的原理,具体参见《J.U.C|AQS原理》。 这篇我们来给大家聊聊AQS中核心同步队列(CLH)。 二、什么是同步队列(CLH) 同步队列 一个FIFO双向队列,队列中每个节点等待前驱节点释放共享状态(锁)被唤醒就可以了。 AQS如何使用它&a…

Java CLH队列

一、SMP和NUMA简要介绍 1.1 SMP SMP(Symmetric MultiProcessing)对称多处理是一种包括软硬件的多核计算机架构,会有两个或以上的相同的核心共享一块主存,这些核心在操作系统中地位相同,可以访问所有I/O设备。它的优点…

AQS-CLH同步队列

1:什么是同步队列(CLH) 同步队列 一个FIFO双向队列,队列中每个节点等待前驱节点释放共享状态(锁)被唤醒就可以了。 AQS如何使用它? AQS依赖它来完成同步状态的管理,当前线程如果获取同步状态…

java clh_【死磕Java并发】-J.U.C之AQS:CLH同步队列 - Java 技术驿站-Java 技术驿站

在上篇博客【死磕Java并发】-----J.U.C之AQS:AQS简介中提到了AQS内部维护着一个FIFO队列,该队列就是CLH同步队列。 CLH同步队列是一个FIFO双向队列,AQS依赖它来完成同步状态的管理,当前线程如果获取同步状态失败时,AQS…

J.U.C之AQS:CLH同步队列

此篇博客所有源码均来自JDK 1.8 在上篇博客中提到了AQS内部维护着一个FIFO队列,该队列就是CLH同步队列。 CLH同步队列是一个FIFO双向队列,AQS依赖它来完成同步状态的管理,当前线程如果获取同步状态失败时,AQS则会将当前线程已经等…

CLH Lock 原理

背景 SMP(Symmetric Multi-Processor) 对称多处理器结构,它是相对非对称多处理技术而言的、应用十分广泛的并行技术。在这种架构中,一台计算机由多个CPU组成,并共享内存和其他资源,所有的CPU都可以平等地访问内存、I/O和外部中断…

AQS: CLH 介绍

AQS内部维护着一个FIFO队列,该队列就是CLH同步队列。 CLH同步队列是一个FIFO双向队列,AQS依赖它来完成同步状态的管理,当前线程如果获取同步状态失败时,AQS则会将当前线程已经等待状态等信息构造成一个节点(Node&…

【算法数据结构专题】「线程锁算法专项」初探CLH队列锁机制原理分析

技术扩展 SMP(对称多处理器架构) SMP(Symmetric Multi-Processor),即对称多处理器结构,指服务器中多个CPU对称工作,每个CPU访问内存地址所需时间相同。其主要特征是共享,包含对CPU,内存&#…

java clh_【Java并发编程实战】—– AQS(四):CLH同步队列

在【Java并发编程实战】—–“J.U.C”:CLH队列锁提过,AQS里面的CLH队列是CLH同步锁的一种变形。 其主要从双方面进行了改造:节点的结构与节点等待机制。在结构上引入了头结点和尾节点,他们分别指向队列的头和尾,尝试获…

JDK内置并发框架AQS对CLH锁的优化

自旋锁的不足 自旋锁适用于锁占用时间短,即锁保护临界区很小的情景。它需要保证各缓存数据的一致性,这可能会导致性能问题。因为在多处理器机器上每个线程对应的处理器都对同一个变量进行读写,而每次读写都要同步每个处理器的缓存。此外,自旋锁无法保证公平性,即不保证先…

面试经典必问:ReentrantLock 中CLH队列

ReentrantLock 中的加锁操作都是通过Syn这个抽象类来完成,具体解析在之前得博客已经分析过了,请参考:ReentrantLock AQS操作解析 得不到锁的线程,如何排队? JUC中锁的排队策略,是基于CLH队列的变种实现的…

java clh_【Java并发编程实战】----- AQS(四):CLH同步队列

在【Java并发编程实战】—–“J.U.C”:CLH队列锁提过,AQS里面的CLH队列是CLH同步锁的一种变形。其主要从两方面进行了改造:节点的结构与节点等待机制。在结构上引入了头结点和尾节点,他们分别指向队列的头和尾,尝试获取…

CLH锁 、MCS锁

一.引文 1.1 SMP(Symmetric Multi-Processor): 对称多处理器结构,指服务器中多个CPU对称工作,每个CPU访问内存地址所需时间相同。其主要特征是共享,包含对CPU,内存,I/O等进行共享。SMP能够保证内存一致性…

CLH锁

1.1 SMP(Symmetric Multi-Processor) 对称多处理器结构,它是相对非对称多处理技术而言的、应用十分广泛的并行技术。在这种架构中,一台计算机由多个CPU组成,并共享内存和其他资源,所有的CPU都可以平等地访问内存、I/O和外部中断。…