您的位置:首页 > 其它

WINCE内存管理

2013-04-21 22:10 549 查看
最近几天被工作上的一个问题搞的焦头烂额,在USB读写数据的时候总是失败,最后软件一直卡在哪边,不往下运行。幸好问题重现几率还是比较大的。最后发现是数组内存没有分配,代码如下:
typedef struct
{
int FilterStep;
int CollimatorStep;
} MotorStep;
自己定义了一个结构,然后定义数组:MotorStep m_MotorSteps[6];
就短短的这句话(可能软件里面使用的数组过多),结果没有分配到内存空间,使用里面的数组的时候发现不可使用。我很纳闷,怎么会这样,明明没有任何问题。最后我考虑到数组跟指针的差别,数组是一连续的内存,但是指针是可不连续的,WINCE下的内存较小,会不会分配不到出现错误。于是我选用了指针来做:
MotorStep* m_pMotorSteps;
结果就正常了。
对于这个问题我只能归结于数组是连续的,系统(内存较小)会分配不到指定大小的连续内存,但是指针是可以
不连续,虽然这个是一个小差别,但是会引起不小的错误问题。我对自己的分析也不知道正确与否,望各位批评指正。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  内存 数组 指针 WINCE