C语言常见错误笔记

  1. 职业化的程序员起码要具备两点:

     1)基本的软件技能

     2)不犯低级的错误

  2. 修改函数的形参是没用的,函数本身占用的存储单元在堆栈中分配,入口参数的值会在函数入口处拷贝到堆栈中,一旦函数返回,其占用的堆栈空间立即被释放

  3. 不要返回局部变量的地址,因为局部变量的地址也存放在堆栈中

  4. 特别警惕变量的强制类型转换:

     1)当目的结构空间大于原始空间,关注是不是越界

     2)当目的结构的空间小于原始空间,关注是不是有大小端字节序的问题

     3)将一块内存转换为另一种结构体格式时,考虑结构体的字节对齐问题

     4)基本数据类型的数据转换之间切记慎重

     5)不要将字符串常量的地址强制转换为字符指针,以免导致发生改变只读数据的段错误

  5. 对于循环变量,确保循环变量的取值范围和循环限制条件的大小的关系,会不会溢出导致死循环

  6. 局部变量是不是太大,导致栈溢出

  7. 字符串使用时,考虑’\0’结尾符的空间;注意数组越界的保护;在字符串操作时,尽量使用有长度校验的安全函数,通过索引操作数组时,一定要判断索引的正确性,是不是为负数,或者过大

posted @ 2017-04-06 10:18  默然向南  阅读(179)  评论(1)    收藏  举报