【发布时间】:2016-03-13 23:02:09
【问题描述】:
#include <iostream>
class Object {
public:
int x;
Object() { }
Object(int x) {
this->x = x;
}
};
class SomeClass {
public:
Object array[10];
int n;
SomeClass() { n = 0; }
void insert(Object o) {
array[n++] = o;
}
};
int main() {
SomeClass s;
Object test = Object(4);
s.insert(test);
return 0;
}
我有这个例子,我在SomeClass 中预先分配了一个对象数组,然后在其他方法中,main 在这个例子中,我创建了另一个对象并将它添加到SomeClass 中的数组中
我认为我应该做的一件事是从array[10] 切换到指针数组,这样我只在真正需要时才创建对象。
但我的问题是,当我将“array[n++] = o”替换为新对象“o”时,最初为array[0] 分配的内存会发生什么情况?它会被取消分配吗?
【问题讨论】:
-
您不应该使用指针数组。如果您想要一个可调整大小的数组,请使用
vector。