博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jsoncpp-src-0.5.0.tar.gz 源码错误!!!!
阅读量:5838 次
发布时间:2019-06-18

本文共 1002 字,大约阅读时间需要 3 分钟。

     近期在做毕设,使用到了JsonCpp0.5.0版本号的源码!

依照网上的安装配置教程,搭建好环境后就能够使用了!

在这里就不浪费空间去将怎样搭建开发环境了!请大家去google一下就好了!

     在解析一个Json文件时。程序总是在某个地方出错!

開始还以为是TXT文件的格式不正确,还特意找了一个json文件来搞!这时发下这个json文件却执行通过!

难道真的是文件的问题!我将我的TXT文件逐渐简化,可是还是出问题,而其问题不是出在我的代码中。难道是JsonCpp的源码出现了问题!真的不敢相信!!

      我将源码载入到我的project文件里来,又一次调试执行,调试期定位到问题所在!

      json_reader.cpp 中

        

bool Reader::decodeDouble( Token &token ){   double value = 0;   const int bufferSize = 32;   int count;   int length = int(token.end_ - token.start_);   if ( length <= bufferSize )   {      Char buffer[bufferSize];      memcpy( buffer, token.start_, length );      buffer[length] = 0;      count = sscanf( buffer, "%lf", &value );   }   else   {      std::string buffer( token.start_, token.end_ );      count = sscanf( buffer.c_str(), "%lf", &value );   }   if ( count != 1 )      return addError( "'" + std::string( token.start_, token.end_ ) + "' is not a number.", token );   currentValue() = value;   return true;}

      问题事实上非常easy,就是数组訪问越界了!

    将if中的推断语句改为 length < bufferSize就好了!

測试用例通过!正确的解析了!

转载地址:http://gyjcx.baihongyu.com/

你可能感兴趣的文章
命名:前置条件方法命名规则。
查看>>
利用Hierarchy Viewer优化布局
查看>>
[leetcode]Construct Binary Tree from Inorder and Postorder Traversal @ Python
查看>>
vc 获取 硬盘序列号 和 cpu
查看>>
【读书笔记《Android游戏编程之从零开始》】5.Android 游戏开发常用的系统控件(ProgressBar、Seekbar)...
查看>>
HDUOJ-------2719The Seven Percent Solution
查看>>
hbase源码系列(十三)缓存机制MemStore与Block Cache
查看>>
转折点:移动互联网时代的商业法则
查看>>
【VI】如何删除匹配指定字符串的行(已解决)
查看>>
IIS7.5中调试.Net 4.0网站出现无厘头500错误的解决办法 (转)
查看>>
Linux fdisk 命令
查看>>
微软职位内部推荐-SENIOR PRODUCER
查看>>
确定比赛名次
查看>>
上门洗车App 竟然是块大肥肉!
查看>>
设计师必备!免费下载 PSD 素材的32个网站
查看>>
三星笔记本R428安装xp win7双系统,切换系统重启才能进入系统解决办法。
查看>>
第 5 章 工厂方法模式【Factory Method Pattern】
查看>>
Android浏览图片,点击放大至全屏效果
查看>>
ArrayAdapter使用方法
查看>>
linux下的ls命令
查看>>