C内存地址 - 代码有什么问题?

时间:2016-12-02 02:55:10

标签: c debugging pointers memory memory-address

有人最近问我,看看下面的代码有什么问题,我该如何解决?

scalar Point

type Point {
  x: Float
  y: Float
}

之前我从未做过类似的事情,所以我尝试在IDE中运行它,我看到return语句给出了分段错误,但我不知道如何解释它以及是否有更多错误。

1 个答案:

答案 0 :(得分:4)

问题出在count(*) * 100.0 / NULLIF(SUM(DATEDIFF(hour, ce.STARTTIME, ce.ENDTIME)), 0) AS [Face to Face Ratio] 循环条件中。

您的while是0x00000080。任何与0x80 AND的值都不会等于1,因为它的LSB为0.任何与0的AND值始终为0.

您必须将条件修改为

BUSY_BIT_MASK

因此,当设置标志时,它将与0x80进行AND运算,输出将为0x80。 (1和1 = 1)

您正在收到SegFault,因为您考虑的地址在您的计算机上无效。你必须采取有效的地址。您正在尝试访问可能不存在的随机内存或内存地址 - 这是SegFault的原因。