C语言常见错误笔记
1. 职业化的程序员起码要具备两点:
1)基本的软件技能
2)不犯低级的错误
2. 修改函数的形参是没用的,函数本身占用的存储单元在堆栈中分配,入口参数的值会在函数入口处拷贝到堆栈中,一旦函数返回,其占用的堆栈空间立即被释放
3. 不要返回局部变量的地址,因为局部变量的地址也存放在堆栈中
4. 特别警惕变量的强制类型转换:
1)当目的结构空间大于原始空间,关注是不是越界
2)当目的结构的空间小于原始空间,关注是不是有大小端字节序的问题
3)将一块内存转换为另一种结构体格式时,考虑结构体的字节对齐问题
4)基本数据类型的数据转换之间切记慎重
5)不要将字符串常量的地址强制转换为字符指针,以免导致发生改变只读数据的段错误
5. 对于循环变量,确保循环变量的取值范围和循环限制条件的大小的关系,会不会溢出导致死循环
6. 局部变量是不是太大,导致栈溢出
7. 字符串使用时,考虑’\0’结尾符的空间;注意数组越界的保护;在字符串操作时,尽量使用有长度校验的安全函数,通过索引操作数组时,一定要判断索引的正确性,是不是为负数,或者过大

浙公网安备 33010602011771号