Wince系统程序-数组内存分配

用VS2005做的Wince程序,采用了动态分配数组的方法,但是程序运行起来之后,数组正常赋值几次就不赋值了,程序在数组赋值的地方不执行了,直接跳到Ontimer函数开始的地方执行,麻烦高手给我看看,不胜感激!!!
数组的初始化代码
int i,j, k;

//构建三维数组
arrcoord=new int** [Object];
for(k=0; k<Object; k++)
{
arrcoord[k] =new int* [M];
for(i=0; i<M; i++)
{
arrcoord[k][i]=new int[N];

}

}

下面是在OnTimer函数里,每隔一段时间扩大数组并用随机数赋值

int i,k;
Invalidate(true);
if(nIDEvent   ==   2)
{
//获取系统时间秒数+变量arrcount作为种子
            CTime timer;
timer=CTime::GetCurrentTime();
int s = timer.GetSecond();
srand(s+xcount); 



arrcoord=(PPPINT)realloc(arrcoord,6*sizeof(int)); //动态增加数组大小六个
xcount=xcount+1;//采用变量的方式获得动态数组的大小


for (k=0; k<initObj; k++) 

for (i=0; i<initM; i++) 



arrcoord[k][i][xcount-1]=rand()%181-90;//产生随机数的方式给数组新增加的部分赋值,产生(-90,90)之间的随机数


y=y+1;//shiyan

                //PostMessage(); 
}


wince 内存分配问题

06-13

由128M DDR,改为64M DDR。rn在LCD驱动中申请内存失败,请问应该是什么问题?rnrnconfig.bib文件内容:rnrnMEMORYrnrn; Name Start Size Typern; ------- -------- -------- ----rn ARGS 80000000 00001000 RESERVEDrn NK 80001000 02000000 RAMIMAGErnIF BSP_DDR128MBrn RAM 82001000 05CFE000 RAMrn DISPLAY 87CFF000 00301000 RESERVED ; Must be in sync with image_cfg.h and memory.cfg.xml!rnELSErn RAM 82001000 01CFE000 RAMrn DISPLAY 83CFF000 00301000 RESERVED ; Must be in sync with image_cfg.h and memory.cfg.xml!rnENDIFrnIF IMGULDRrn cbNKPagingPoolSize 00000000 00100000 FIXUPVARrnENDIFrnrnCONFIGrnrn AUTOSIZE=ONrn KERNELFIXUPS=ONrn COMPRESSION=ONrn FSRAMPERCENT=0x80808080rnrnIF IMGPROFILER rn PROFILE=ONrnELSErn PROFILE=OFFrnENDIFrnrn;rn; ROMFLAGS is a bitmask of options for the kernelrn; ROMFLAGS 0x0001 Disallow Pagingrn; ROMFLAGS 0x0002 Not all KModern; ROMFLAGS 0x0010 Trust Module onlyrn;rnIF IMGTRUSTROMONLYrn IF IMGNOTALLKMODErn ROMFLAGS=12rn ELSErn ROMFLAGS=10rn ENDIFrnELSErn IF IMGNOTALLKMODErn ROMFLAGS=02rn ELSErn ROMFLAGS=00rn ENDIFrnENDIFrnrn;rn; NOR nborn;rn;ROMSTART=97C00000rnrn; ram image .nb0rnROMSTART=80001000rnrnIF WINCEDEBUG=debugrn; For DEBUG build, give it more ROM. Changes must be along with the Eboot\loader.hrn ROMSIZE=03000000rnELSErn ;ROMSIZE=03000000rn ROMSIZE=02000000rnENDIF WINCEDEBUG=debugrnrn; NB0 file should contain imagernROMWIDTH=32rnrn错误信息:rnrnalloc_map_memrnPageFreeCount == 0x103rnHalAllocateCommonBuffer: memory allocation failed (error = 0x8).rnERROR: D:\WINCE600\PLATFORM\COMMON\SRC\SOC\pxa310_mrvl_v1\DISPLAY\main_lcd\.\dispdrvr.c line 190: CRITICAL ERROR: display SDRAM region allocation failedrnERROR: D:\WINCE600\PLATFORM\COMMON\SRC\SOC\pxa310_mrvl_v1\DISPLAY\main_lcd\.\sa2video.cpp line 209: CRITICAL ERROR: video memory allocate failedrnrnrn是在HalAllocateCommonBuffer函数中出现的问题,在HalAllocateCommonBuffer函数中调用 了AllocPhysMem函数,rn AllocPhysMem=xxx_AllocPhysMem。rnrn请大侠指点。谢谢

没有更多推荐了,返回首页

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试