一段VC写的Timer,用来从串口中读取称重的值,本来很简单的,代码直接从串口调试助手中拷贝的,仅对获得的字符串处理是自己写的。却频繁报告内存不足的错误。而且,timer的周期越短,报告越频繁.
苦恼了很久,终于从万能的baidu看到了类似的问题。原来是由char *pp=new char[qq];引起的,其中qq由上边的代码计算而来,当qq=-1是,就会报内存 不足的错误,
当出现Invalid allocation size的时候,其原因就是分配的内存块过大。
因为很明显的提示啊
4294967295 = 0xFFFFFFFF 就是 -1 -- 注意new的参数是qq,估计new[-1]了。
阅读(12206) | 评论(0) | 转发(0) |