C++内存管理问题,如何删除char *
天蓬老师
天蓬老师 2017-04-17 11:06:25
0
2
565

以下代码为什么会报错,以及如何正确删除ch,释放内存。

char *ch = new char(100);
char tmp[10] = "e100";
strtod(tmp, &ch);
cout << *ch << endl;
delete ch;
system("pause");
天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全員に返信(2)
迷茫

你写错了,应该是new char[100],同时删除语句应该是delete[] ch,new char(100)的意思是构造一个char并且初始化值为100。

いいねを押す +0
Ty80

这里是strtod函数用法有误吧——说ch没有初始化也行

请查看strtod用法:
http://baike.baidu.com/view/1876981.h...

ch没有初始化的化,其内容是不确定的,strtod极有可能遇不上字符串结束符号(“NULL”)

另外,最后一句 delete[] ch 更好。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!