我在程序中定义一个数组,用memset()函数来初始化,结果出错了! int *xmax;
xmax=new int[480];
for(int tt=0;tt<480;tt++)
xmax[tt]=0;//这样初始化就不会出错!// memset(xmax,0,480);//这样赋值会出错!当py==120时,xmax[py]==-842150451
for(int py=0;py<480;py++)
{
if(条件成立)
xmax[py]=1;
}
..........................................我源程序里面,是循环判断一个条件,当条件成立时,把xmax[py]的值赋值为1.我在单步调试时,当py 的值为120 的时候,xmax[py] 的值就一下子变为 (-842150451)了,这是为什么?当我用for循环初始化xmax[]数组时,就不会出现这样的情况!是不是 memset()函数是针对 字符 运算的啊?
xmax=new int[480];
for(int tt=0;tt<480;tt++)
xmax[tt]=0;//这样初始化就不会出错!// memset(xmax,0,480);//这样赋值会出错!当py==120时,xmax[py]==-842150451
for(int py=0;py<480;py++)
{
if(条件成立)
xmax[py]=1;
}
..........................................我源程序里面,是循环判断一个条件,当条件成立时,把xmax[py]的值赋值为1.我在单步调试时,当py 的值为120 的时候,xmax[py] 的值就一下子变为 (-842150451)了,这是为什么?当我用for循环初始化xmax[]数组时,就不会出现这样的情况!是不是 memset()函数是针对 字符 运算的啊?
顺便请你翻翻MSDN
再请教下,如果用 ZeroMemory();的话,那第二个参数是直接 480 ,还是 480*sizeof(int) ?