我正在为一个现有的主程序开发一个类,它在 delete []
行抛出一个段错误。我不太确定为什么要这样做。我问过教授,我被告知重新阅读关于指针如何被破坏的部分。任何帮助,将不胜感激!相关代码如下。
主要内容:
Point* v = new Point[nVertices];
for (int i = 0; i < nVertices; ++i)
in >> v[i].x >> v[i].y;
Asteroid aster1 (nVertices, v);
delete [] v;
小行星构造函数的类部分:
Asteroid::Asteroid(int nVertices, Point vertexPoints[]){
numVertices = nVertices;
for (int i = 0; i < numVertices; i++){
vertices[i] = vertexPoints[i];
}
}
如果这很重要,还有 .h 部分:
class Asteroid{
int numVertices;
Point vertices[];
public:
//Attributes
Asteroid (int,Point*);
最佳答案
段错误看起来不太可能出现在 delete[]
行。它更有可能发生在 Asteroid
构造函数中,因为在创建应该包含顶点的数组之前,您已经尝试访问顶点。
关于c++ - 删除 [] 时出现段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9880795/