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

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

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

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

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


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

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


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

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




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值