亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

C++問題,今天遇到的題,找錯誤。沒有找出來。編譯一下也可以運行。請教大神有什么問題?

C++問題,今天遇到的題,找錯誤。沒有找出來。編譯一下也可以運行。請教大神有什么問題?

C++
料青山看我應如是 2018-11-09 11:15:54
#include <iostream>using namespace std;class TestClass { char* m_data; int m_size;public: TestClass(void) { m_size = 0; } ~TestClass(void) { if (m_data) delete[] m_data; }void copyData(const char* data, int _size) { m_data = new char[_size]; memcpy(m_data, data, _size); m_size = _size; }int getDataSize(void) const { return m_size; }};void showSize(TestClass a){ cout << "size = " << a.getDataSize() << endl;}int main(){ const char* const szData = "ABC";TestClass a; a.copyData(szData,strlen(szData)+1);showSize(a);return 0;}
查看完整描述

2 回答

?
慕俠2389804

TA貢獻1719條經驗 獲得超6個贊

m_data在構造函數中初始化m_data=NULL

copyData:需要進行m_data的銷毀,否者每次調用會造成內存泄露

 

這個類只是練習用還行,一般的產品中不會用到這種形式,std::string已經有類似的處理


查看完整回答
反對 回復 2018-11-14
?
嚕嚕噠

TA貢獻1784條經驗 獲得超7個贊

一般遇到指針變量時,好的習慣是將它在聲明時就初始化為NULL。


查看完整回答
反對 回復 2018-11-14
  • 2 回答
  • 0 關注
  • 682 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號