在Clang文档页面中有以下代码片段:
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;
上却出现了分段错误?这是检查器的限制还是有些事情我不理解?