WINCE内存管理

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


你可能感兴趣的:(内存,数组,指针,WinCE)