zoukankan      html  css  js  c++  java
  • C++ string类析构报错

         我项目中用到了字符串的Base64转码、DES解密等功能,可能DES解密算法只能解密8字节倍数长度的字符串,所以我得到的结果总会存在一个多余的“尾巴”,于是我想要做一个字符串尾部清理的工作。我的做法是:从字符数组末尾往前找,如果当前字符是合法的结尾字符,比如说xml里的'>'和json里的'}',那当前字符的后面一个字符就会被置为‘’,以表示字符串结束。

         但是当我用以上得到的字符串指针初始化一个string对象后,问题就来了。在string对象析构的时候会报错,错误是:free(): invalid next size (fast),网上查了一下说是内存泄露的问题。不敢怎样,我相信C++的string类是没有问题的,我猜问题出在了我传给它的字符串上。后来尝试着把字符串尾部多余的部分都置为'',问题就解决了。其实具体的原理我还是不太明白,但是我以后会注意一下两点:申请字符数组后,先要做的就是memset(buf,0,size);字符串中间截取后,后面多余的空间也要置为‘’.

  • 相关阅读:
    C#中值类型和引用类型
    C#XML
    矩阵操作2
    scala安装
    Linux拷贝U盘文件(命令行)
    通过电脑,模拟点击手机屏幕 /手机自动点击,刷金币?
    python类
    矩阵操作
    数据预处理函数
    train_test_split数据切分
  • 原文地址:https://www.cnblogs.com/guoxiaoqian/p/3871094.html
Copyright © 2011-2022 走看看