VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 1284|回复: 5

delete[] 崩溃

[复制链接]
64_avatar_middle
最佳答案
0 
online_vip 发表于 2016-12-2 03:44:13 | 显示全部楼层 |阅读模式
20驿站币
        CT2A t2a(str);
        char *charstr = (char *)t2a;
        int charlen = strlen(charstr);
        int base64len = Base64EncodeGetRequiredLength(charlen);//获取需要Base64的长度

        char *Base64chai = new char(base64len+1);//申请需要base64的内存控件
        if (!Base64chai) return false;
        //ZeroMemory(Base64chai, base64len+1);//对申请的内存空间清0

        BOOL Base64bool = Base64Encode((LPBYTE)charstr, charlen, Base64chai, &base64len);//Base64编码
        Base64chai[base64len] = 0;//char清0
        str.Empty();//清0
        str = Base64chai;//赋值反回
        if (Base64chai)delete[] Base64chai;//如果指针还在就释放

if (Base64chai)delete[] Base64chai;//如果指针还在就释放

到这句就崩溃了

最佳答案

查看完整内容

低级错误: char *Base64chai = new char(base64len+1); 改成: char *Base64chai = new char;




上一篇:加载自定义资源文件问题
下一篇:WebBrowser 每条线程独立 cookie
51_avatar_middle
最佳答案
82 
online_admins 发表于 2016-12-2 03:44:14 | 显示全部楼层
低级错误:
char *Base64chai = new char(base64len+1);
改成:
char *Base64chai = new char[base64len+1];

点评

一下子居然没看出来区别。。。。  发表于 2016-12-4 16:25
35_avatar_middle
最佳答案
0 
在线会员 发表于 2016-12-4 23:10:43 | 显示全部楼层

In C++, what's the difference between

char *a = new char[10];

and

char *a = new char(10);

------------------------------------------------------------


The first allocates an array of 10 char's. The second allocates one char initialized to 10.
88_avatar_middle
最佳答案
0 
online_vip 发表于 2016-12-5 19:52:29 | 显示全部楼层
彻底服了!哈哈
64_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2016-12-18 19:58:27 | 显示全部楼层
谢谢 。delete[] 崩溃
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号 )|网站地图wx_jqr

GMT+8, 2020-9-28 06:11

Powered by CcTry.CoM

© 2009-2020 cctry.com

快速回复 返回顶部 返回列表