本文代码仅用于演示文章能力。

先缩小问题

复制原程序,逐步移除与异常无关的输入、输出和分支,直到只剩最小复现:

#include <stdio.h>

int main(void) {
  int values[3] = {1, 2, 3};
  for (int i = 0; i < 3; ++i) {
    printf("%d\n", values[i]);
  }
  return 0;
}

再建立检查顺序

依次检查编译器警告、边界条件、变量生命周期和输入合法性。一次只改变一个因素,保留能证明修复有效的测试用例。

暂无相关文章。