【问题标题】:my c code crashes when running it on c-free but works fine on borland?我的 c 代码在 c-free 上运行时崩溃,但在 borland 上运行良好?
【发布时间】:2014-05-31 17:27:13
【问题描述】:

在 borland c 3.1 中运行我的代码时,它运行良好,但在 c-free 上运行它时,它在以下行崩溃:while(ptr1->pright) { ptr1=ptr1->pright; } 给 SIGSEGV,有什么合乎逻辑的理由吗?

【问题讨论】:

  • 您的代码几乎可以肯定存在内存问题,因此它表现出未定义的行为:它在 Borland 上碰巧没有崩溃,但这纯属巧合。
  • 可能 ptr1 未初始化。
  • 问题在于构建/操作链表的代码。您应该检查它(或在此处发布)。

标签: c segmentation-fault turbo-c


【解决方案1】:

您可能正在访问数组边界之外的内存或您未分配的内存。因此,您触发了未定义的行为,因此几乎任何事情都可能发生,包括崩溃甚至显然工作正常。

【讨论】:

    【解决方案2】:

    在创建/初始化链接列表的节点时,请确保将节点的成员 pright 显式初始化为 NULL

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-26
      • 2015-11-30
      • 1970-01-01
      相关资源
      最近更新 更多