大家吧遇到的最困扰你的错误说来听听那,交流下,以后可以避免
c语言吧
全部回复
仅看楼主
level 1
dot_wish 楼主
我最困扰的一次是写文件传输程序时犯的:我通过下载一个文件头来得知文件大小和各文件数量,然后分配一个int数组来保存各文件的传输成功情况,结果我用malloc来分配时,忘记乘int的size,使程序的堆被破坏,但这一粗心的失误一直没发现,后来我实现将传输得到的位图文件绘制出来时,发现一使用windows的载入位图文件函数程序就会立即退出,(本来一般的windows版本有API支持以位图的缓冲指针直接绘制的,但我的开发平台是winCE,只能以位图句柄绘图)百思不得其解,我试了各种方法,用手工读bitmap文件载入位图,一行行检查文件传输函数,还有创建私有堆来分配传输缓冲,都没发觉最初分配的数组,搞得项目几乎失败,只好先实现其他的模块,到快到期限时我最后一次看代码,想加些注释以便交差时才发现这个错误--在总结我试过的载入位图方法时想到了Windows载入位图时使用GetprocessHeap() 来获得进程的缺省堆,然后分配内存,也就是说缺省堆被破坏以致载入位图函数被强退,而当时我的传输缓冲都已经移到了私有堆里,于是我一行行看,马上就看到了那个忘了乘4的malloc参数,然后~~~~后来我在大些的程序里创建私有堆来分配动态内存,这种小问题在代码量一大起来后很难发现,尤其是一般不会出问题,堆被破坏后你再分配使用都不会发现问题,但依赖进程缺省堆的API就会隔屁。这种白痴级问题各位大哥也许不会犯,在这里仅供抛砖引玉
2005年01月07日 19点01分 1
level 9
这种错误我倒是没犯过,因为一开始就对malloc特别注意。不过我也犯过很多低级错误,有一些都能笑死人的。呵呵。举个例子:long a;//假设long是4字节FILE *fp=fopen(...,...);//open file//a=0;//这是后来发现错误才加上的fread( &a, 3, 1, fp);//读入3个字节fclose( fp );printf("%d\n",a);结果会是多少?不确定!为了这个问题我曾经调试了6个多小时,硬是没发现错误。
2005年01月08日 01点01分 2
level 6
我才是才学C中文件这一章菜1
2005年01月09日 05点01分 3
level 11
我表示各种声明写漏成员/表达式写错算符是很讨厌的,时钟和页表都是这么卡住之后各种debug才发现杯具所在……
2011年03月12日 15点03分 5
level 9
表示手滑最讨厌
2011年03月12日 15点03分 6
level 11
回复:6楼
少女的小手都很滑滑滑滑滑滑滑滑滑滑滑滑滑滑的[Love]
2011年03月12日 15点03分 7
level 9
回复:7楼
呃……大叔。。
2011年03月12日 15点03分 8
level 11
回复:8楼
炮姐就说过她的小手很滑滑滑滑滑滑滑滑滑滑滑滑滑滑滑滑滑滑滑滑滑的[Love]
2011年03月12日 15点03分 9
level 9
回复:9楼
[揉脸]大叔最YD了
2011年03月12日 15点03分 10
level 9
又是挖坟啊。
看到2楼我自己的回复,我又想起了那风云时代了。当时为了这个Bug,我硬是调试了一个通宵,最后以为是GCC的Bug[88]。事实证明,疲劳作战效果非常不好。睡了一觉之后,立刻就看到错误所在了。
2011年03月12日 15点03分 11
level 11
疲劳确实相当影响debug……
2011年03月12日 15点03分 12
level 9
[揉脸]我想知道回调函数我怎么调,,,
my god~~~   受不了了。。。
2011年03月12日 15点03分 13
level 11
回复:13楼
callback你不用管……做好接口然后注册了之后就交给OS娘或者serv娘
2011年03月12日 15点03分 14
level 9
回复:11楼
那年头我还什么都不懂……
2011年03月12日 15点03分 15
level 9
回复:15楼
6年前,你们都还小,呵呵。
2011年03月12日 15点03分 16
level 9
回复:14楼
[拍砖]表示看不到。。。感觉好模糊的。。。不爽- -
2011年03月12日 15点03分 17
level 7
有次想封装一下opengl,产生了某个指针错误,然后触发了某个驱动错误,导致每调试一次蓝屏一次,后来硬盘带着bug一起走了,非常想把微软和intel的程序员打一顿
2011年03月12日 15点03分 18
level 11
回复:17楼
不必自己费心,哪里不爽
2011年03月12日 15点03分 19
level 13
回复:2楼
这个用valgrind可以调试出来的
2011年03月12日 15点03分 20
level 9
回复:19楼
不清楚是怎么来的。。。您用着放心么?
2011年03月12日 15点03分 21
1 2 尾页