我想存储结构的动态数组作为另一个结构中的成员变量。这是正确的方式来使用主给我的例子构造函数?如何初始化动态成员变量?
编辑 我纠正了我在代码中出现的一些明显的错误(当时是早上6点)。我还向B添加了另一个成员,以查看push_back是否仍然正确。我知道我的生活会更容易使用动态内存的向量,但我需要这样做,因为这些结构是最终与thrust :: device_vector一起使用的结构。
struct A
{
float mem1;
int mem2;
};
struct B
{
A * Aarr1;
A * Aarr2;
B(A * a1, A * a2): Aarr1(a1), Aarr2(a2){}
};
int main()
{
A * test = new A[5];
A * test2 = new A[10];
vector<B> btest;
btest.push_back(B(test, test2));
for(int i=0; i<5; i++)
printf("mem1: %f, mem2: %i \n", btest[0].Aarr[i].mem1, btest[0].Aarr[i].mem2);
}
如果你有一个B的向量,为什么有一个A的数组? – 2013-03-16 10:41:21