【发布时间】:2016-07-22 16:13:14
【问题描述】:
我目前一直在使用一个可能会创建重量级对象的库。具体来说,我正在创建与波形文件关联的对象。
现在在创建 Wave Object 的实例时(仅作为示例),有没有一种好方法可以确定它在内存中的分配位置?
例如,如果我要在堆栈中实例化一个 std::vector,我知道在堆栈上分配了一些内存(即头信息),并且在堆上创建了实际的容器数据。所以在大多数情况下,我不必担心堆栈内存溢出。虽然我仍然可以选择在堆中完全实例化对象。
但是假设我不知道对象的实现。假设我正在使用一个在堆栈中创建大量数组的库。这可能会导致问题。
所以我的问题是:我们如何知道一个对象在内存方面有多“重”?
【问题讨论】:
-
简短的回答是:你不能。至少除非您使用工厂部件,否则至少不会,它总是在堆上实例化您的对象。当然,在这种情况下,答案总是“堆”。
标签: c++ c++11 dynamic-memory-allocation stack-memory