搜尋

首頁  >  問答  >  主體

C++内存管理问题,如何删除char *

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

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

全部回覆(2)我來回復

  • 迷茫

    迷茫2017-04-17 11:08:25

    你寫錯了,應該是new char[100],同時刪除語句應該是delete[] ch,new char(100)的意思是構造一個char並且初始化值為100。

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-17 11:08:25

    這裏是strtod函數用法有誤吧——說ch沒有初始化也行

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

    ch沒有初始化的化,其內容是不確定的,strtod極有可能遇不上字符串結束符號(“NULL”)

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

    回覆
    0
  • 取消回覆