研二
工作记录
如果程序崩溃,首先写主函数调用一遍。如果无法通过主函数调用 ——
- 检查free的内存释放,先把所有的内存释放都注释掉再跑一遍。内存不释放不会立刻导致程序崩溃,因为内存容量是很足的。如果此时没有崩溃,则确定是内存出现了重复释放的问题。这时候一个一个取消内存的注释再行测试。
- 检查如果内存释放无误则问题基本确定是指针调用越界的问题。这时候尝试放大空间开辟的大小(先测试指针开辟空间,然后测试数组开辟空间)。
- 检查在初始化变量时是否将指针声明为了普通 变量,如:将**unsigned char *声明为了unsigned char **。
- 检查在调用时,是否直接对指针进行了错误的赋值,如:
unsigned int *a = 10;
这种操作。
以上四点建议按先后顺序进行检查,因为经验来说出现频率由高到低。