[問題] 把const char[]當作引數傳遞
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
MS Visual Studio
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
.NET framework
問題(Question):
我想請問關於這個程式碼: http://pastie.org/2840019
我從 main() 把 "abcdefg" 這個 const char[] 傳到建構元接收,
接著建構元直接把 m_str 指向這塊資料。
所以在call f() 的時候會無法delete,因為不是用new建立的資料。
接著我把程式碼改成這樣: http://pastie.org/2840026
修改的是建構元的部分。
我會先 new 一塊新的空間,然後把傳入的資料都複製到 new 出來的這塊空間。
所以之後 call f() 的時候就可以順利 delete 。
在這邊我想請問:
"abcdefg" 這個 const char[] 的資料是不是就發生了memory leak的現象?
還是說它其實跟一般的變數一樣,只是個區域變數,
只要 main() 結束以後它會自動消除,不用去處理它?
同樣的狀況如果是呼叫普通,非 member function 的一般函數,
將 "abcdefg" 傳入函數做處理以後回傳一些資料,
那麼 "abcdefg" 是不是也算是區域變數,所以不需要做處理?
還是說其實需要額外把 "abcdefg" 佔用的空間清理出來呢?
謝謝:)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.38.24.48
推
11/10 12:58, , 1F
11/10 12:58, 1F
→
11/10 13:00, , 2F
11/10 13:00, 2F
推
11/10 13:11, , 3F
11/10 13:11, 3F
→
11/10 13:11, , 4F
11/10 13:11, 4F
→
11/10 13:12, , 5F
11/10 13:12, 5F
→
11/10 13:48, , 6F
11/10 13:48, 6F
→
11/10 13:48, , 7F
11/10 13:48, 7F
→
11/10 13:49, , 8F
11/10 13:49, 8F
→
11/10 13:49, , 9F
11/10 13:49, 9F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章