[問題] 新手第7戒問題 new delete
小弟想請問一個觀念上的問題,我已經爬過文了,沒有看到關於我想問的問題的討論
有可能是太基本了...
新手第7戒提到有相應的new 就要有相應的delete
狀況一
void func()
{
int *array=new int[array size];
//do something
}
int main()
{
func(); //第一次叫
func(); //第二次叫
return 0;
}
狀況二
void func()
{
int *array=new int[array size];
//do something
delete [] array;
}
int main()
{
func(); //第一次叫
func(); //第二次叫
return 0;
}
第一個問題是想請教第一次叫完func()的時候在狀況一是不是如同狀況二array已經被
delete掉了呢?也就是說呼叫第2次func()的時候是不是記憶體只有1個array而非2個array
呢?我自己測試的結果似乎是這樣,所以delete可以省略? 還是說省略理論上是可以,
但是是一個不好的習慣,所以還是建議寫delete?
希望各位解答,謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 124.8.99.128
推
06/02 01:46, , 1F
06/02 01:46, 1F
→
06/02 01:47, , 2F
06/02 01:47, 2F
推
06/02 03:33, , 3F
06/02 03:33, 3F
→
06/02 09:16, , 4F
06/02 09:16, 4F
→
06/02 09:59, , 5F
06/02 09:59, 5F
推
06/02 18:22, , 6F
06/02 18:22, 6F
→
06/02 18:22, , 7F
06/02 18:22, 7F
→
06/02 18:23, , 8F
06/02 18:23, 8F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章