首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

socket通信中的动态分配内存导致的异常

2012-08-16 
socket通信中的动态分配内存导致的错误今天在调试socket的时候遇到了这样一个比较奇怪的问题。我在单步调试

socket通信中的动态分配内存导致的错误

今天在调试socket的时候遇到了这样一个比较奇怪的问题。

我在单步调试多线程程序的时候是没有错误的,但是一运行程序马上崩溃了。

原来以为是多线程的问题,但是我在程序崩溃之后调试了一下,找到出错的地方,发现是在使用数组的时候出错了。

这个数组是动态分配内存malloc出来的,百度了一下,看到有人跟我遇到了相同的问题:


时间问题.你单步,.每一步花的时间多,所以程序执行完成了,没有错误,

而你直接执行,执行时间太快,可能你要的结果还没出来,就执行了,比如读数据,其实你还没读全,就开始其它的操作,所以就会出错,可以加上一些延时,问题就解决了.
这种情况应该比较多的发生在通信上面


于是尝试着把动态分配数组的malloc改成char str[256]这种形式,这样程序就可以正常执行了。

后来想想,初学者很容易犯这类错误,以后碰到类似的问题应该格外当心才是。




热点排行