2 baidu 31083567 baidu_31083567 于 2016.01.20 14:59 提问

我把串口接受的数据放到数组里面进行处理,

现在遇到一个问题,这个串口可能会不停工作,工作一天以上,这样的话这个数组应该怎么动态申请内存呢

2个回答

caozhy
caozhy   Ds   Rxr 2016.01.20 15:12

new或者malloc,但是也可以不动态申请,固定一个缓冲区。就你的需求,没必要动态申请

baidu_31083567
baidu_31083567 我的意思是我用数组存放很多很多的数据,所以现在需要一个无上限的数组
接近 2 年之前 回复
91program
91program   Ds   Rxr 2016.01.20 15:24

申请多少内容,不是根据工作多少时间,无是根据接收到多少数据量!
如果数据量不大,就可以一次完成内存申请;如果数据量不确定,就必须采用动态分配 ralloc & reralloc 的方法。

91program
91program 回复蓝牙开发:我也是写了一个串口助手之类的程序,malloc/calloc/new都可以,先申请一个较大的空间如 1M。开始接收!当接收到的数据大于 1M时,再申请2M。然后将已经接收到的 1M 复制过来。再释放此1M的空间!然后继续、循环此过程。
接近 2 年之前 回复
baidu_31083567
baidu_31083567 我使用mfc编写一个串口助手,由于它连续工作的时间长,所以这个数组需要无限大才能放得下所有接收的数据啊,MFC好像没有ralloc吧
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!