读书人

字符串存储空间的抉择

发布时间: 2013-07-04 11:45:33 作者: rapoo

字符串存储空间的选择?
求教,各位大神:我现在要接受“N”包数据 对每一包数据进行解析,解析完后暂存到一个“存储空间”,然后发送出去。数据包中有字符和二进制数据。
存储空间的选择:
1、静态内存(数组),容易产生越界(不知道要接收的数据包的长度是多少)
2、动态分配内存, 每次解析一包数据都要分配与释放,易产生碎片且效率不高
有没有一种方法,可以摒弃这两种方式的缺点,求教? C++?存储空间 存储 行业数据
[解决办法]

引用:
求教,各位大神:我现在要接受“N”包数据 对每一包数据进行解析,解析完后暂存到一个“存储空间”,然后发送出去。数据包中有字符和二进制数据。
存储空间的选择:
1、静态内存(数组),容易产生越界(不知道要接收的数据包的长度是多少)
2、动态分配内存, 每次解析一包数据都要分配与释放,易产生碎片且效率不高
有没有一种方法,可以摒弃这两种方式的缺点,求教?


“N”包数据是并发处理还是顺序处理?处理后是否发送并释放内存,然后再接收下一个包?

如果是顺序处理,并且处理完毕后才接收下一个包,那就不需要每次都分配和释放,完全可以使用同一个动态分配的内存块,只在长度不足时进行增长(C可以用realloc,C++就只能new-copy-delete了。)

如果需要同时处理多个包,那就只能对每个包进行分配释放操作了。当然可以考虑用池,但也不过是节省一些分配-释放的时间消耗,不是很有意义。

读书人网 >C++

热点推荐