可能是我不用功好好k書吧 orz.. 而且自己接觸的是Embedded System.. C++技術都沒進步的 orz..
----------------------------------------
int *a, *b, *c;
a = new int;
b = new int;
c = new int;
// ....
delete a, b, c;
上面這樣的寫法會造成memory leak,主要是因為delete a, b, c只會刪除a而已,且乎略b, c
我一開始看到memory leak的時候還蠻訝異的,明明int *a, *b, *c就是正常的,會宣告出a,b,c三個int pointer
為什麼會delete a, b, c卻只會對a動作呢??
主要是delete a, b, c裡面還包成逗號運算元
delete a, b, c 等於(delete a), b, c;
先delete a之後再對b, c取值。
所以要寫delete動作時還是乖乖的一行一行寫吧
delete a;
delete b;
delete c;
沒有留言:
張貼留言