搜索
c++ - 以下代码为什么报错?
PHP中文网
PHP中文网 2017-04-17 11:06:42
[C++讨论组]

cout是有值的,但是delete得时候就会报错。

char *ch = new char(100);
char tmp[10] = "e100";
strtod(tmp, &ch);
cout << *ch << endl;
delete ch;
system("pause");
PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(1)
迷茫

稍微看了一下strtod的代码:

00088 double
00089 strtod (const char * nptr, char ** endptr)
00105     if (endptr)
00106        *endptr = (char *)nptr;
00132        if (endptr)
00133            *endptr = (char *)nptr + 2;

然后对比一下下面两段代码:

分割线
char *ch = new char[10];
ch = "3.14";
cout << ch << endl;
delete [] ch;
char *ch = new char[10];
strncpy(ch,"3.14",10);
cout << ch << endl;
delete [] ch;

别忘了cstring!

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号