我想在運行時確定一個對象的大小。 sizeof不起作用,因爲它在編譯時返回大小。這裏是我的意思的例子:如何在運行時確定一個C++對象的內存
class Foo
{
public:
Foo()
{
c = new char[1024*1024*1024];
}
~Foo()
{
delete[] c;
}
private:
char *c;
};
在這種情況下,sizeof(Foo)
將是4個字節,而不是〜1GB。我如何在運行時確定Foo的大小?提前致謝。
可能的重複[如果免費()知道我的數組的長度,爲什麼我不能在我自己的代碼中要求?](http://stackoverflow.com/questions/2650895/if-free-knows我的數組爲什麼不能在我自己的代碼中請求它) – 2010-12-22 21:35:35
您可能想要區分對象的大小和由目的。您設置`c`指向的分配將永遠不會成爲對象本身的一部分。類「Foo」的對象將全部具有相同的大小(這將是上述示例中數據指針的大小)。這是一個有點迂腐,但... – dmckee 2010-12-22 21:37:50