【发布时间】:2018-03-14 10:40:28
【问题描述】:
我正面临 MISRA C 2004 违反规则 1.2“可能使用空指针。我正在使用的代码如下:
tm_uint8* diagBuf = 0u;
diagBuf[0] = diagBuf[0] + 0x40u;
diagBuf[2] = 0x01u;
diagBuf[0] = diagBuf[0] + 0x40u;
diagBuf[2] = 0x01u;
这只是上述代码的一部分。有些语句有“IF”条件。
有人能指出我为什么会违反 MISRA 吗?
【问题讨论】:
-
显然,您使用的是空指针。
diafBuf指向地址 0。 -
最好只是将其发回给开发人员并说“MISRA C 规则 1.2 违反 - 修复它”。
-
@Pras 不使用 malloc 不也是 MISRA 规则吗?
-
@AndrejsCainikovs 空指针一般不会“指向地址 0”
-
“可能使用空指针” - 这让我笑了
标签: c pointers null-pointer misra