如何使程序发疯
最近的工作是测试一个别人写的SDK,结果在运行一个测试case时发现程序很古怪。
只要执行了某个函数就会改变程序中其他毫不相干的变量的值(这个变量没有作为此函数的参数)。
后来终于发现问题了,调用函数时传递了一个字符串数组用于输出出错信息。比如:
//int ABC(int id,char *errmsg);
char errmsg[256];
...
int ret = ABC(id,errmsg);
...
当ABC函数中向errmsg中写入的信息大于errmsg的长度时,就会出现这种程序“发疯”的情况。
贴出来分享一下。