C++学习问题记录(一)

遇到的问题:异常: 0xC0000005: 读取位置 0xFFFFFFFFFFFFFFFF 时发生访问冲突。

参考资料:https://blog.youkuaiyun.com/wangshubo1989/article/details/50135673

解决方案:这个错误是由于指针的内存分配不对引起的,检查了代码,发现有个指针重复定义,使用的内存超过了给他分配的内存,导致这个指针存储地址之后的指针的地址出错,从而引起错误。

//打印图像
 PrintImageAction = new QAction(QIcon("PrintImage.png"), tr("打印图像"), this);
 PrintImageAction->setStatusTip(tr("打印图像"));

//打印文本
 PrintImageAction = new QAction(QIcon("PrintText.png"), tr("打印文本"), this);
 PrintImageAction->setStatusTip(tr("打印文本"));

如代码所示,C++给同一个指针在初始化时候分配了固定的内存,而我重复初始化分别存了不同的数据进去。C++默认的是先存了第一个初始化时候的值,然后存第二个初始化值。假设第一次初始化时候分配的内存是1000,内存开始位置为0000,结束位置为1000。这1000全部用来存了pringtImage,之后为了存printText,占用了1000个内存。即pringImageAction指针实际占用内存为2000。下一个指针的起始位置为1001,结束位置为2000。然而这个内存位置已经被printImage占用,就会出现0xC0000005错误。
在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值