鱼C论坛

 找回密码
 立即注册

[技术交流] 初学者或是开发人员常遇到的c语言陷阱

  [复制链接]
发表于 2014-7-28 15:28:02 | 显示全部楼层
谢谢楼主,好文!!!绝对好文!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-10-31 20:54:30 | 显示全部楼层
很到位的总结!谢谢分享!:ton:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-16 00:40:25 | 显示全部楼层
好东西
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2015-1-8 21:43:51 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-23 08:50:44 | 显示全部楼层
赞一个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-25 09:22:21 | 显示全部楼层
感谢分享
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-25 23:12:46 | 显示全部楼层
辛苦了谢谢分享加油
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-3-7 11:27:49 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-3-7 15:00:53 | 显示全部楼层
总结得不错,你说的好多情况我都遇到过
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-4-4 12:22:43 | 显示全部楼层
感觉还有一种。。。
void *a=0xXXXXXX
char *b= (char *)calloc(X,sizeof(char));
然后 b=a;
最后 free(b);释放的却是a。
这是我在使用libcurl中遇到的。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-4-22 15:49:27 | 显示全部楼层
感谢分享
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-6-27 19:56:01 | 显示全部楼层
支持:lol:支持:lol:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-7-18 23:31:05 | 显示全部楼层
楼主辛苦了:victory:
<code>return "thanks a lot !"</code>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-7-18 23:37:13 | 显示全部楼层
  1. 楼主,我指出一个你一个问题哦,关于main函数的写法:
  2. int main(void) { return 0; }
  3. int main(int argc,char *argv[]) { return 0; }
  4. /*听说来自C99;*/
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-7-19 01:18:31 | 显示全部楼层
忽然感觉,这不应该是一个专业人员该犯的错误;
  1. link:http://bbs.fishc.com/thread-25340-1-1.html
  2. 《C语言编程之道》-明日科技,《c++程序设计》-谭浩强
  3. 原文:第四章 开发人员不可忽视的22个技术陷阱-《C语言编程之道》
  4. 《c++程序实例1200题》
  5. ======================================================;
  6. C中注意出现的错误:
  7. 1.大小写的忽略,这个比较简单也是容易出错的地方,代码就不例举了;
  8.   变量未定义就使用;或类似指针未赋值的使用;等出现的错误;
  9.   scanf()函数忘记加& 取址符; scanf()函数 输入流格式不对应的错误;
  10.   switch中忘记用break;则每种情况都判断,满足条件都执行;

  11. 2.{}和()使用不当的错误;
  12. [code]int n[2][3]={(1,2,3),(4,5,6)};
  13. ------------------------------
  14. 程序不能正常输出每个元素;编译{(1,2,3),(4,5,6)};时,先进行括号内的逗号运算(取逗号最后的数值)编译生成{3,6};其它元素为0。正确的写法:{{1,2,3},{4,5,6}};
  15. ------------------------------

  16. 3.在 if(),while(),#include,#define,for()后直接加分号的情况;
  17. if(...); //造成判断语句失效;
  18. while(...); //没有将变化到结束的条件设置在while()中时,造成死循环;
  19. #inlucde ...; //造成程序编译时的错误提示,引用库文件出现错误;
  20. #define DEFINEdata 200; //特殊情况下会造成编译错误;

  21. 4.不注意各种工具搭配造成的bug冲突;
  22.   [1].unsigned 和循环结构;
  23.   [code] unsigned int i=10;
  24.          for(i;i>=10;i--);//其实只要改成i>0;就OK了;
  25.         [i被定义为无符号整型变量,i的值永远大于等于0;i>=0永远成立]
  26.          while(0);和do{}while(0);//0为假,非0即真;

  27. 5.do{..}while();        和while(){...}; 的区别;
  28. do....while先执行再判断条件是否成立;无论条件是否成立,do....while至少执行一次;
  29. while 先判断,再执行;条件不成立,就不执行,可能执行0次[即1次不执行];


  30. 6.数据溢出产生的错误;
  31. sizeof(int)==4byte;数据最大支持补码数值(-32768 to +32767);
  32. int num=32768;  //超出有效范围造成数据溢出;

  33. 7.两个int 常量或变量 /结果为 0-1之间的值的时候;合理的定义变量
  34. [如果除号的两边都为整数,结果为整数;两边有一个实数,结果为实数];
  35. [code]double i; i=9.5+1/2; (i==9.500000);        //之前;
  36. [code]double i; i=9.5+1.0/2; (i==10.000000);        //之后

  37. <code>
  38. #include<stdio.h>
  39. #include<stdlib.h>
  40. #include<string.h>
  41. //using namespace std;

  42. int main(void){
  43.        
  44.         char *str=NULL;
  45.         str=(char*)malloc(5);
  46.        
  47.         strcpy(str,"goodluck");
  48.         fprintf(stdout,"%s",str);
  49.         free(str);//如果使用内存没释放也会造成错误的;
  50. return 0;
  51. }//编译器优化的结果:所以执行了,可以执行 = =;
  52. [程序动态分配5字节的内存空间,但是赋值超过了5字符,错误为赋值的数据超过动态分配的空间]
  53. </code>
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-8-20 10:58:41 | 显示全部楼层
陷阱的低13、14、15是我要逐步加强的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-9-5 21:51:13 From FishC Mobile | 显示全部楼层
额……我更喜欢看视频你懂的初学者会看得懂吗?支持一定要继续做啊!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-11-3 15:03:06 | 显示全部楼层
不错 支持 多来点易错题 也行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-22 09:40:47 | 显示全部楼层
感谢楼主,受教了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-22 10:20:23 | 显示全部楼层
不错不错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 02:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表