在Clang documentation page中有以下代码的片段:
struct seven_words {
int c[7];
};
void test() {
struct seven_words a, *p;
p = &a;
p[0] = a;
p[1] = a;
p[2] = a; // warn
}
为什么检查器仅在访问p [2]的行处发出警告,而行p[1] = a;
上存在分段错误。它是检查者的限制还是有些我不理解的东西?
答案 0 :(得分:2)
文档不正确。 (或者,如果它正确记录了分析仪的行为,则分析仪存在缺陷,因为它无法检测到明显的问题。)