WINCE内存管理
2013-04-21 22:10
549 查看
最近几天被工作上的一个问题搞的焦头烂额,在USB读写数据的时候总是失败,最后软件一直卡在哪边,不往下运行。幸好问题重现几率还是比较大的。最后发现是数组内存没有分配,代码如下:
typedef struct
{
int FilterStep;
int CollimatorStep;
} MotorStep;
自己定义了一个结构,然后定义数组:MotorStep m_MotorSteps[6];
就短短的这句话(可能软件里面使用的数组过多),结果没有分配到内存空间,使用里面的数组的时候发现不可使用。我很纳闷,怎么会这样,明明没有任何问题。最后我考虑到数组跟指针的差别,数组是一连续的内存,但是指针是可不连续的,WINCE下的内存较小,会不会分配不到出现错误。于是我选用了指针来做:
MotorStep* m_pMotorSteps;
结果就正常了。
对于这个问题我只能归结于数组是连续的,系统(内存较小)会分配不到指定大小的连续内存,但是指针是可以
不连续,虽然这个是一个小差别,但是会引起不小的错误问题。我对自己的分析也不知道正确与否,望各位批评指正。
typedef struct
{
int FilterStep;
int CollimatorStep;
} MotorStep;
自己定义了一个结构,然后定义数组:MotorStep m_MotorSteps[6];
就短短的这句话(可能软件里面使用的数组过多),结果没有分配到内存空间,使用里面的数组的时候发现不可使用。我很纳闷,怎么会这样,明明没有任何问题。最后我考虑到数组跟指针的差别,数组是一连续的内存,但是指针是可不连续的,WINCE下的内存较小,会不会分配不到出现错误。于是我选用了指针来做:
MotorStep* m_pMotorSteps;
结果就正常了。
对于这个问题我只能归结于数组是连续的,系统(内存较小)会分配不到指定大小的连续内存,但是指针是可以
不连续,虽然这个是一个小差别,但是会引起不小的错误问题。我对自己的分析也不知道正确与否,望各位批评指正。
相关文章推荐
- IE7降低内存和降低CPU的几个技巧
- ruby 数组使用教程
- 如何高效的使用内存
- DOS下内存的配置
- XP/win2003下发现1G的内存比512M还慢的解决方法
- 探索PowerShell (八) 数组、哈希表(附:复制粘贴技巧)
- php中将指针移动到数据集初始位置的实现代码[mysql_data_seek]
- 学习使用PHP数组
- 一个PHP数组应该有多大的分析
- 将数组写入txt文件 var_export
- PHP操作数组的一些函数整理介绍
- PHP关联数组的10个操作技巧
- PHP去除数组中重复的元素并按键名排序函数
- PHP下对数组进行排序的函数
- PHP中常用数组处理方法实例分析
- PHP学习笔记之数组篇
- C语言指针学习经验总结浅谈
- php 数组使用详解 推荐
- PHP extract 将数组拆分成多个变量的函数
- javascript splice数组简单操作