【发布时间】:2011-04-04 14:27:58
【问题描述】:
我有一个类似这样的功能:
void foo(obj ary[], int arysize) {
for (int i = 0; i < arysize; i++)
ary[i] = obj(i, "abc");
}
我这样称呼它:
obj array[5];
foo(array, 5);
它应该用我的对象填充数组。但是,当它返回时,对象是垃圾。它适用于像int 这样的值类型和东西,所以我认为这与我创建的对象在范围内是本地的有关,所以当函数返回时它会被破坏。我希望能够在不使用 new 的动态分配对象的情况下做到这一点。我该怎么做?
【问题讨论】:
-
你的 obj 类的构造函数中是否有内存分配?
标签: c++ arrays object parameter-passing