1、今天写代码时,碰到了一个错误,在读fscanf时碰到的,排查很久,错误如下

2、具体如下

在VS2013环境中,读文件的某一行内容如下:

Hold simulation Function : 1     //0,正常仿真;1,测试消息仿真

因为需要读入这个数字给Hold_SF,锁定代码中有这个相关代码

static unsigned char Hold_SF = 0//在fscanf处是这样使用的
fscanf(frp_hs_cfg, "Hold simulation Function :%d%s\n", &Hold_SF, temstr);

读完之后:Hold_SF=1是正确的,后面的字符串temstr也是正确的;

但是文件指针在这句之后出错,变为野指针了,无法继续fscanf,也无法fclose

3、最终解决方法:

原来问题出在格式符%d上,因为定义的Hold_SF是unsigned char类型,而%d默认是个长整数,所以这个地方有bug。

按道理应该可以正常读的才对,这地方是个bug。

所以解决方法:

1> 定义Hold_SF为static unsigned long类型

2> 或者修改为fscanf(frp_hs_cfg, "Hold simulation Function :%c%s\n", &Hold_SF, temstr);

3>或者修改为fscanf(frp_hs_cfg, "Hold simulation Function :%d%s\n", (unsigned long*)&Hold_SF, temstr);(部分情况下有效,自测)

sscanf也有同样的问题@VS2013下,只不过报的错误如下:

 Run-Time Check Failure #2 - Stack around the variable 'xx' was corrupted

实际上错误是同一个类型

fscanf读内容后发生错误,文件指针变成乱码(野指针)相关推荐

  1. 【kettle】【报错】 Unexpected problem reading shared objects from XML file 当读共享文件时发生错误

    ETL报错: Unexpected problem reading shared objects from XML file : null 当读共享文件时发生错误(继续加载 报 kettle新建转换 ...

  2. 面试题:什么是野指针?产生野指针的原因?

    一.什么是野指针 野指针是指向位置随机的.不正确的指针,系统无法对其进行操作: 二.野指针的危害 野指针指向的位置是随机的, 危害也是随机的,不一定会产生错误.若程序产生错误,一般为内存泄露导致程序中 ...

  3. eclipse英文版如何汉化以及汉化后发生错误解决方案

    汉化后启动出现提示:"发生错误,请参阅日志文件"或者"产生错误日志界面" ##eclipse的在线汉化地址:http://www.eclipse.org/bab ...

  4. C/C++总结笔记——指针1:野指针、空指针(NULL和nullptr)、悬空指针、智能指针

    C/C++中有几种指针相关的概念,只知道有这样的概念,但HR一问就露馅,这里进行总结方便复习. 1.野指针 1.指针定义时未被初始化:指针在被定义的时候,如果程序不对其进行初始化的话,它会指向随机区域 ...

  5. 一个双线程下同一时候操作指针变量导致野指针出现的问题总结

    来源:http://blog.csdn.net/lezhiyong 问题: 在某项目的測试过程中,測试在高清压力測试过程中会偶尔出现RSS崩溃现象,崩溃时间不确定,因为在守护进程服务的守护下,RSS崩 ...

  6. c语言 指针_C语言野指针以及非法内存操作

    如果一个指针指向的内存没有访问权限,或者指向一块已经释放掉的内存,那么就无法对该指针进行操作,这样的指针称为野指针(Wild Pointer). 指向没有访问权限的内存 请看下面的代码: #inclu ...

  7. linux野指针追踪,论野指针BUG查找方法

    一般raw指针的使用才会容易出现这类问题,使用了指针管理的一般不容易出现因此这里不阐述(shared_ptr unique_ptr)等. 在展开叙述前,我们先看看下面的实现原理和方案: 1.在Unit ...

  8. 【C语言进阶深度学习记录】三十七 C/C++中造成程序内存错误的原因(野指针)

    什么是野指针? 指针变量存的地址是一块非法内存地址.进而形成野指针.但是需要注意一点,野指针不是NULL指针. 文章目录 1 野指针的概念 1.1 野指针代码案例初探 2 如何避免野指针 2.1 野指 ...

  9. xjar加密后运行错误_Python中的错误和异常

    前言 错误是程序中的问题,由于这些问题而导致程序停止执行.另一方面,当某些内部事件发生时,会引发异常,从而改变程序的正常流程. python中会发生两种类型的错误. 语法错误 逻辑错误(异常) 语法错 ...

最新文章

  1. Python之迭代器和生成器
  2. Element el-upload上传组件详解
  3. layui前端框架弹出框图标整理
  4. [Git高级教程(二)] 远程仓库版本回退方法
  5. python连接postgis_python连接postgres方法
  6. spring整体架构
  7. office另存为pdf的加载项_Word怎样转换成PDF
  8. 算术平方根计算机保留根号,根号计算器
  9. 【PR】PR剪辑视频编辑软件视频去字幕
  10. 阿里云服务器ECS建站教程
  11. 重置计算机的网络配置是什么意思,电脑怎么重置网络设置 win10网络重置后连不上网怎么办...
  12. java8-常用stream操作(1)
  13. 树莓派自动连接WiFi
  14. Laravel下用户权限系统 的解决方案Zizaco/Entrust
  15. LOG4J2-MDC-全链路跟踪等功能研究
  16. 【转】钓鱼邮件攻击检测
  17. 我的世界服务器显示未知指令,我的世界输入创造指令为什么显示未知指令
  18. 如何提高企业员工的企业文化,形成共同的理念价值观
  19. 公钥私钥及ssh公钥无密码登录
  20. 一直帮助别人,自己的事都做不好 其实也是非常自私的一种行为

热门文章

  1. arduino红外对管
  2. 基于阿里云 Serverless 函数计算开发的疫情数据统计推送机器人
  3. C++ Primer Plus(学习笔记之——一会儿指南、一会儿指北)
  4. jquery显示隐藏元素
  5. Python 某电子产品销售数据分析报告及RFM模型(一)
  6. 简单研究Unity中的万向锁和欧拉角以及四元数
  7. 简易磁盘写入速度测试工具(GO)
  8. 用linuxdeployqt打包程序遇到qmake找不到的问题如何解决
  9. 安装完Ubuntu 18.04之后要做的几件事
  10. 史上最全的nexus私服搭建全流程