锐英源软件
第一信赖

精通

英语

开源

擅长

开发

培训

胸怀四海 

第一信赖

当前位置:锐英源 / 开源技术 / C++平台框架库和混编开源 / 读取字符串字符时出错

服务方向

人工智能数据处理
人工智能培训
kaldi数据准备
小语种语音识别
语音识别标注
语音识别系统
语音识别转文字
kaldi开发技术服务
软件开发
运动控制卡上位机
机械加工软件
量化预测
股票离线分析软件
软件开发培训
Java 安卓移动开发
VC++
C#软件
汇编和破解
驱动开发

联系方式

固话:0371-63888850
手机:138-0381-0136
Q Q:396806883
微信:ryysoft

读取字符串字符时出错


在调试时,监视窗口查看变量时,有时候会遇到:读取字符串字符时出错,这个问题,经常发生在查看类对象字符串成员,比如string或char[]这样类型的成员,正常时能看到字符串值,比如:”welcome"等等,还可以通过下拉箭头查看文本,在字符串查看窗口里看到多行的文本:。

vs文本可视化

但是在监视窗口里报告了读取字符串字符时出错,就不可能打开文本可视化窗口进行查看了。

这问题在小型软件里一般不会出现,一般是大型软件,对内存使用非常复杂的软件里才会出现。

memset越界造成,同时让对象属性成员值突然变化,因为越界写入,写到了对象内存范围里,所以对象内部成员的值不对,读取字符串字符时出错就发生了,这时候不是一个成员的字符读取不了,是多个成员或所有成员都不行,只要发现多个成员读字符时出错,就是内存越界问题造成的。但是这时候,程序还能正常运行,不一定崩溃,特别是在Debug模式下,Release模式下可能会崩溃。memset的最后长度参数不要写死,要用内存实际长度sizeof,这样能避免越界问题。

除了memset,其它的memcpy函数,有内存覆盖效果的函数都会有这样的问题,所以在内存使用开发时,要尤其小心。

具体哪行的memset或memcpy,并不好找,如果大家遇到类似的问题,请找锐英源软件。

友情链接
版权所有 Copyright(c)2004-2024 锐英源软件
统一社会信用代码:91410105098562502G 豫ICP备08007559号 最佳分辨率 1440*900
地址:郑州市金水区文化路97号郑州大学北区院内南门附近