在Borland C 3.1中运行我的代码时,它工作正常,但是在c-free上运行它时,它会在以下行崩溃:while(ptr1->pright)
{
ptr1=ptr1->pright;
}
给SIGSEGV,有什么合乎逻辑的理由吗?
您可能正在访问数组边界之外的内存或未分配的内存。因此,您触发了未定义的行为,因此几乎任何事情都可能发生,包括崩溃甚至表面上工作正常。
在创建/初始化链表的节点时,请确保显式初始化节点的成员pright
以NULL
。