我想在双向链表中插入一个节点。我通过了位置,多项式的新系数及其幂。我没有编译错误,但是当我使用 Visual Studio 运行它时,我在 linux (g++) 中遇到了分段错误和访问冲突写入位置。
Program.exe 中 0x00bd20ba 处的未处理异常:0xC0000005:访问冲突写入位置 0xcdcdcdd9。
void Polynomial::insert( Term *pos, double newCoefficient, int power )
{
Term *newTerm = new Term; // create a new node to insert
// Link the new node to previous and next, given the position
newTerm->prev = pos->prev;
newTerm->next = pos;
newTerm->prev->next = newTerm; // Here's where I'm getting the error
newTerm->next->prev = newTerm;
// change the coefficient and power
newTerm->coefficient = newCoefficient;
newTerm->power = power;
}
我做错了什么,我该如何解决?