[問題] delete [] 順序?
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
Ubuntu Linux 12.04 / gcc 4.6.3
問題(Question):
期中考筆試考題,以下 code 的 output 是什麼?
#include <iostream>
using namespace std;
struct T {
T(int n=0) : a(n) {cout << a;}
~T() {cout << a ;}
int a;
};
int main (void)
{
delete [] new T[3] {1, 2, 3};
return 0;
}
預期的正確結果(Expected Output):
123123
錯誤結果(Wrong Output):
123321
補充說明(Supplement):
用 delete [] 釋放 new [] 來的 array 時,
他去呼叫 dtor 的順序為什麼是倒過來的?這樣設計有什麼特別原因嗎?
對於 C++ 裏面物件何時呼叫自己的 dtor 把殺死自己的時間點不是很清楚
我只知道一般物件(區域變數)在碰到區塊 } 時會結束生命
而動態 new 出來的物件則是要自己 delete 時才會去找 dtor
求詳細觀念導正@@
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.247.99
→
05/17 07:33, , 1F
05/17 07:33, 1F
→
05/17 07:33, , 2F
05/17 07:33, 2F
→
05/17 07:34, , 3F
05/17 07:34, 3F
→
05/17 07:39, , 4F
05/17 07:39, 4F
→
05/17 07:53, , 5F
05/17 07:53, 5F
→
05/17 07:54, , 6F
05/17 07:54, 6F
→
05/17 08:11, , 7F
05/17 08:11, 7F
→
05/17 08:11, , 8F
05/17 08:11, 8F
→
05/17 08:12, , 9F
05/17 08:12, 9F
推
05/17 08:16, , 10F
05/17 08:16, 10F
→
05/17 08:17, , 11F
05/17 08:17, 11F
→
05/17 08:18, , 12F
05/17 08:18, 12F
→
05/17 08:19, , 13F
05/17 08:19, 13F
→
05/17 08:19, , 14F
05/17 08:19, 14F
→
05/17 08:20, , 15F
05/17 08:20, 15F
→
05/17 08:27, , 16F
05/17 08:27, 16F
推
05/17 08:31, , 17F
05/17 08:31, 17F
→
05/17 08:33, , 18F
05/17 08:33, 18F
→
05/17 09:04, , 19F
05/17 09:04, 19F
→
05/17 09:04, , 20F
05/17 09:04, 20F
→
05/17 09:05, , 21F
05/17 09:05, 21F
→
05/17 09:06, , 22F
05/17 09:06, 22F
→
05/17 09:06, , 23F
05/17 09:06, 23F
→
05/17 09:06, , 24F
05/17 09:06, 24F
→
05/17 09:06, , 25F
05/17 09:06, 25F
→
05/17 09:42, , 26F
05/17 09:42, 26F
推
05/17 09:47, , 27F
05/17 09:47, 27F
→
05/17 09:50, , 28F
05/17 09:50, 28F
→
05/17 09:50, , 29F
05/17 09:50, 29F
→
05/17 09:51, , 30F
05/17 09:51, 30F
→
05/17 09:52, , 31F
05/17 09:52, 31F
→
05/17 09:54, , 32F
05/17 09:54, 32F
→
05/17 09:55, , 33F
05/17 09:55, 33F
推
05/17 10:10, , 34F
05/17 10:10, 34F
→
05/17 10:10, , 35F
05/17 10:10, 35F
→
05/17 10:26, , 36F
05/17 10:26, 36F
→
05/17 10:32, , 37F
05/17 10:32, 37F
→
05/17 10:32, , 38F
05/17 10:32, 38F
→
05/17 12:30, , 39F
05/17 12:30, 39F
→
05/17 15:28, , 40F
05/17 15:28, 40F
→
05/17 15:28, , 41F
05/17 15:28, 41F
→
05/17 15:30, , 42F
05/17 15:30, 42F
→
05/17 15:31, , 43F
05/17 15:31, 43F
→
05/17 15:32, , 44F
05/17 15:32, 44F
→
05/17 15:33, , 45F
05/17 15:33, 45F
推
02/27 12:00, , 46F
02/27 12:00, 46F
→
02/27 12:01, , 47F
02/27 12:01, 47F
→
02/27 12:02, , 48F
02/27 12:02, 48F
→
02/27 12:02, , 49F
02/27 12:02, 49F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):
5
49
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章