C++常见报错汇总

文章讲述了C++编程中遇到的四个常见错误:非法字符(如中文字符)、重定义(如MAXV和头文件包含问题)、堆栈溢出(数组下标越界)以及指针和函数调用的规范。提供了相应的解决方法和预防措施。
摘要由CSDN通过智能技术生成

一、非法字符

[Error] stray ‘\241’ in program

[Error] stray ‘\243’ in program

[Error] stray ‘\273’ in program

报错的意思是c/c++中的产生了编译错误。

该错误是指源程序中有非法字符,需要将非法字符去掉。一般是由于编程者使用中文输入法或者从别的地方直接复制粘贴代码造成的。代码中出现了中文空格,中文引号, 各种中文标点符号。

解决方法:

1.把出错行的空格及其前后空格删掉重新打一下试试。

2.把明显和其他标点符号颜色不同的改掉。(大部分编译器都有颜色识别)

3.直接全部重打。

二、重定义

error C2374: “MAXV”: 重定义;多次初始化

message : 参见“MAXV”的声明

可能是变量或函数的重定义,也可能是头文件重复包含产生重定义。

如果是头文件重复包含,可以在头文件的开头加上这句话:

#pragma once

意思就是这个程序无论被包含多少次,只编译一次,从而解决了重定义问题。

也可以用如下预编译指令解决:

#ifndef A_H
#define A_H
//A.h的内容
#endif

意思是如果未定义A_H,就定义它;如果已定义就什么都不干。

这里A_H的标识符可以自定义。

上面两种方式的作用一样,编写.h文件时加上这几句话是一个良好的编程习惯。
 

如果是变量重复定义,可以参考一下我的这篇血泪教训

三、堆栈溢出

Run-Time Check Failure #2 - Stack around the variable ‘A‘ was corrupted.

一般是数组下标越界,检查访问的数组下标是不是超出了定义的长度。

四、其他

指向绑定函数的指针只能用于调用函数

调用函数的时候没有加上括号。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值