【发布时间】:2018-11-19 18:05:57
【问题描述】:
在我的程序中,我有一个具有以下构造函数的类:
pp = new Particle*[maxN]
在一个函数中我有:
// create the new particle and fill with data
pp[n] = new Particle;
pp[n]->charge = charge;
pp[n]->px = px;
pp[n]->py = py;
pp[n]->pz = pz;
// store the new particle pointer in the array
//...
问题是最后一条指令的代码我不知道怎么写,即
// store the new particle pointer in the array
你能帮帮我吗?
【问题讨论】:
-
您的代码已经创建了新的粒子并将指向它的指针保存在数组中(
pp[n] = new Particle;),之后询问如何将它存储在那里没有意义。此外,您不应为此使用指针、数组和动态内存分配 (new)。如果没有特别的理由不这样做,请使用std::vector,尤其是作为初学者。 -
pp[n] = new Particle; -
1) 停止使用手动内存管理。 2) 使用
std::array或std::vector。 3) 请发帖minimal reproducible example。此外,智能指针是一个(非常有用/好)的东西。 2018年请不要写C++98代码。 -
编写 cmets 的人希望您首先创建对象
Particle* p = new Particle; p->charge = ...,然后存储该指针pp[n] = p;。由于您偏离了预期,因此您陷入了困境。 -
真核生物,Jesper Juhl 这段代码是要求使用这些特定事物的练习的一部分。无论如何感谢您的建议:) @molbdnilo 谢谢,这就是我正在寻找的答案