专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > Symbian

3rd_MR版本的描述符有关问题

发布时间:2010-05-30 00:33:33 文章来源:www.iduyao.cn 采编人员:星星草
3rd_MR版本的描述符问题
在MR版本开发的过程中,发现一个奇怪的问题,在模拟器中测试都好使,但是在真机测试的时候,
我使用的指针描述符的size大小大大的超越了我设置的大小,老是报数组越界的错误,
找了半天原因无果而终,希望大家帮忙看一下,
以下是具体代码:



------解决方案--------------------
这个我觉得不应该是越界 而是栈缓冲区溢出:
TBuf8<1024> ibuf, sec;
TBuf8<1024> temp;
这三个变量就是3KB的栈空间;而且楼主说模拟器没问题,那是因为模拟器栈空间足够,真机上栈空间不能如此浪费的
楼主可以使用HBufC试试,将内存放到堆上
------解决方案--------------------
楼主说的问题确实有点怪异,但问题可能出在这里,
TUint8 block[4 * MAXBC];
TPtr8 blockPtr(block, 1024);
1024是否等于4 *MAXBC
TPtr是一个描述符指针,他本身是不负责内存的申请和释放的,构造时需要告诉他首地址和最大长度,然后它像c里边的char*一样访问、修改从首地址开始的这片内存中的字符。
如果4 *MAXBC < 1024时,实际上是存在着内存的非法访问的问题;当然,如果 4 *MAXBC >= 1024应该不会有问题,一般而言我们会这么写TPtr8 blockPtr(block, 4 * MAXBC)。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: