c++由于疏忽出现的bug以及一定要注意的问题(内存泄漏、-1.#QNAN、无法正常启动0xc000007b、 switch break、vs无法启动程序 拒绝访问)...

1.内存泄漏

最近在用别人的代码时发现内存一直在泄漏,而且我是批处理文件,这个问题必须解决。

再一番查找之后发现:

首先 new 和 delete一定要对应,不然肯定会出现内存泄漏的问题

其次,在对类用delete删除时是调用其析构函数的,因此在写构造函数时一定要对应写好析构函数,把构造函数中new的对象都要在析构函数delete掉。

如果在任务管理器中看到内存有减小的时候然后又增大说明delete掉了一部分,再去检查一下是不是还有哪些没有delete.

我这次是代码不多,直接通过注释然后调用某个函数一点点排除发生泄漏的部分,师弟给了一个vld的链接https://blog.csdn.net/invisible_sky/article/details/78206380 但是我用它没有查找到出问题的地方,说明这个软件也不是全能的。回头可以再研究研究。

2.-1.#QNAN(忘记初始化导致的问题)

最近有个bug是由于一个指针忘记初始化了,导致会产生输出-1.#QNAN的问题

调试时可以从最终输出-1.#QNAN这个变量查起,用isnan()这个函数,然后一步一步往前推问题出在哪

3. 应用程序无法正常启动0xc000007b

是因为缺少.dll文件,需要把相应地动态链接库放在.exe文件夹下。 我这次是缺少freeglut.dll

4. switch 和case导致的 bug

switch (key)
{
case 'a':
{
bShowAxis = !bShowAxis;
break;
}

}

如果要执行单个case最后必须加上break,否则每个case都会执行

5.VS2013->无法启动程序 拒绝访问 在命令行运行会发现窗口自动关闭并且.exe文件会被删除

解决办法:

1.一般重启就能解决
2.管理员身份运行
3.关闭杀毒软件
4.是不是开过一些网游,比如TGP
5.是不是网购:一般来说是被【360】一类的木马、病毒防护软件锁住了,看看屏幕右下角【360】小图标上是否有把锁?如果有,说明你正在打开类似【淘宝】一类的网络交易平台,此时360会自动启动木马防护程序,禁止陌生进程运行。把【淘宝】网页关闭,360上的锁会自动消失,你的程序就可以运行了。

最终退出360就可以了

转载于:https://www.cnblogs.com/amarr/p/10179147.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值