请教:
是这样的,我的程序(mygame.exe)运行几个小时后会自动退出
今天,我在 debug 模式下让它运行(VS2003)
几个小时后,弹出了:Debug Aseertion Failed
Program: d:\xgw\mygame\debug\mygame.exe
file:dbgdel.cpp
line:52
Expression:_BLOCK_TYPES_IS_VALID(pHead->nBlockUse)
是:
C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\crt\src的 dbgdel.cpp 的 /* verify block type */
_ASSERTE(_BLOCK_TYPE_IS_VALID(pHead->nBlockUse));
各位大哥,为什么会出现这样的错误啊?
Game_Play.hstruct SongAnimalFall //动物下调的结构
{
float FallStartTime; //
float FallEndTime; //
int AnimalColour; //
bool GreenString; //
bool FallCompleteFlag; //
};
class Game_Play
{
public:
Game_Play();
SongAnimalFall* SongAnimalSjzqmFall;
SongAnimalFall* SongAnimalSrklFall;
SongAnimalFall* SongAnimalHlsdFall;
};
Game_Play.cpp
Game_Play::Game_Play()
{
SongAnimalSjzqmFall = NULL;
SongAnimalSrklFall = NULL;
SongAnimalHlsdFall = NULL;
}
Sjzqm.cpp
Sjzqm_Create()
{
SongAnimalSjzqmFall = new SongAnimalFall[219]; //开辟 219 个 SongAnimalFall 大小空间
SongAnimalSjzqmFall[0].FallStartTime = 0.0f;
SongAnimalSjzqmFall[0].FallEndTime = 2.033f;
SongAnimalSjzqmFall[0].AnimalColour = 2;
SongAnimalSjzqmFall[0].GreenString = true;
SongAnimalSjzqmFall[0].FallCompleteFlag = false;
SongAnimalSjzqmFall[1].FallStartTime = 1.000f;
SongAnimalSjzqmFall[1].FallEndTime = 3.033f;
SongAnimalSjzqmFall[1].AnimalColour = 2;
SongAnimalSjzqmFall[1].GreenString = false;
SongAnimalSjzqmFall[1].FallCompleteFlag = false;
...............................................
..............................................
...............................................
}Sjzqm_Free()
{
if (SongAnimalSjzqmFall)
{
delete[] SongAnimalSjzqmFall;
SongAnimalSjzqmFall = NULL;
}
}
Srkl.cpp
Srkl_Create()
{
SongAnimalSrklFall = new SongAnimalFall[100]; //开辟 100 个 SongAnimalFall 大小空间
SongAnimalSrklFall[0].FallStartTime = 0.0f;
SongAnimalSrklFall[0].FallEndTime = 2.033f;
SongAnimalSrklFall[0].AnimalColour = 2;
SongAnimalSrklFall[0].GreenString = true;
SongAnimalSrklFall[0].FallCompleteFlag = false;
SongAnimalSrklFall[1].FallStartTime = 1.000f;
SongAnimalSrklFall[1].FallEndTime = 3.033f;
SongAnimalSrklFall[1].AnimalColour = 2;
SongAnimalSrklFall[1].GreenString = false;
SongAnimalSrklFall[1].FallCompleteFlag = false;
...............................................
..............................................
...............................................
}Sjzqm_Free()
{
if (SongAnimalSrklFall)
{
delete[] SongAnimalSrklFall;
SongAnimalSrklFall = NULL;
}
}
Hlsd.cpp
Hlsd_Create()
{
SongAnimalHlsdFall = new SongAnimalFall[150]; //开辟 150 个 SongAnimalFall 大小空间
SongAnimalHlsdFall[0].FallStartTime = 0.0f;
SongAnimalHlsdFall[0].FallEndTime = 2.033f;
SongAnimalHlsdFall[0].AnimalColour = 2;
SongAnimalHlsdFall[0].GreenString = true;
SongAnimalHlsdFall[0].FallCompleteFlag = false;
SongAnimalHlsdFall[1].FallStartTime = 1.000f;
SongAnimalHlsdFall[1].FallEndTime = 3.033f;
SongAnimalHlsdFall[1].AnimalColour = 2;
SongAnimalHlsdFall[1].GreenString = false;
SongAnimalHlsdFall[1].FallCompleteFlag = false;
...............................................
..............................................
...............................................
}Sjzqm_Free()
{
if (SongAnimalHlsdFall)
{
delete[] SongAnimalHlsdFall;
SongAnimalHlsdFall = NULL;
}
}
各位大哥,我这样释放错了,是吗?for(i = 0; i < 219; i ++)
{
if (SongAnimalSjzqmFall[i])
{
delete[] SongAnimalSjzqmFall[i];
SongAnimalSjzqmFall[i] = NULL;
}
}
for(i = 0; i < 100; i ++)
{
if (SongAnimalSrklFall[i])
{
delete[] SongAnimalSrklFall[i];
SongAnimalSrklFall[i] = NULL;
}
}
for(i = 0; i < 150; i ++)
{
if (SongAnimalHlsdFall[i])
{
delete[] SongAnimalHlsdFall[i];
SongAnimalHlsdFall[i] = NULL;
}
}要这样写,是不?
还是我错在别的地方?谢谢!
是这样的,我的程序(mygame.exe)运行几个小时后会自动退出
今天,我在 debug 模式下让它运行(VS2003)
几个小时后,弹出了:Debug Aseertion Failed
Program: d:\xgw\mygame\debug\mygame.exe
file:dbgdel.cpp
line:52
Expression:_BLOCK_TYPES_IS_VALID(pHead->nBlockUse)
是:
C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\crt\src的 dbgdel.cpp 的 /* verify block type */
_ASSERTE(_BLOCK_TYPE_IS_VALID(pHead->nBlockUse));
各位大哥,为什么会出现这样的错误啊?
Game_Play.hstruct SongAnimalFall //动物下调的结构
{
float FallStartTime; //
float FallEndTime; //
int AnimalColour; //
bool GreenString; //
bool FallCompleteFlag; //
};
class Game_Play
{
public:
Game_Play();
SongAnimalFall* SongAnimalSjzqmFall;
SongAnimalFall* SongAnimalSrklFall;
SongAnimalFall* SongAnimalHlsdFall;
};
Game_Play.cpp
Game_Play::Game_Play()
{
SongAnimalSjzqmFall = NULL;
SongAnimalSrklFall = NULL;
SongAnimalHlsdFall = NULL;
}
Sjzqm.cpp
Sjzqm_Create()
{
SongAnimalSjzqmFall = new SongAnimalFall[219]; //开辟 219 个 SongAnimalFall 大小空间
SongAnimalSjzqmFall[0].FallStartTime = 0.0f;
SongAnimalSjzqmFall[0].FallEndTime = 2.033f;
SongAnimalSjzqmFall[0].AnimalColour = 2;
SongAnimalSjzqmFall[0].GreenString = true;
SongAnimalSjzqmFall[0].FallCompleteFlag = false;
SongAnimalSjzqmFall[1].FallStartTime = 1.000f;
SongAnimalSjzqmFall[1].FallEndTime = 3.033f;
SongAnimalSjzqmFall[1].AnimalColour = 2;
SongAnimalSjzqmFall[1].GreenString = false;
SongAnimalSjzqmFall[1].FallCompleteFlag = false;
...............................................
..............................................
...............................................
}Sjzqm_Free()
{
if (SongAnimalSjzqmFall)
{
delete[] SongAnimalSjzqmFall;
SongAnimalSjzqmFall = NULL;
}
}
Srkl.cpp
Srkl_Create()
{
SongAnimalSrklFall = new SongAnimalFall[100]; //开辟 100 个 SongAnimalFall 大小空间
SongAnimalSrklFall[0].FallStartTime = 0.0f;
SongAnimalSrklFall[0].FallEndTime = 2.033f;
SongAnimalSrklFall[0].AnimalColour = 2;
SongAnimalSrklFall[0].GreenString = true;
SongAnimalSrklFall[0].FallCompleteFlag = false;
SongAnimalSrklFall[1].FallStartTime = 1.000f;
SongAnimalSrklFall[1].FallEndTime = 3.033f;
SongAnimalSrklFall[1].AnimalColour = 2;
SongAnimalSrklFall[1].GreenString = false;
SongAnimalSrklFall[1].FallCompleteFlag = false;
...............................................
..............................................
...............................................
}Sjzqm_Free()
{
if (SongAnimalSrklFall)
{
delete[] SongAnimalSrklFall;
SongAnimalSrklFall = NULL;
}
}
Hlsd.cpp
Hlsd_Create()
{
SongAnimalHlsdFall = new SongAnimalFall[150]; //开辟 150 个 SongAnimalFall 大小空间
SongAnimalHlsdFall[0].FallStartTime = 0.0f;
SongAnimalHlsdFall[0].FallEndTime = 2.033f;
SongAnimalHlsdFall[0].AnimalColour = 2;
SongAnimalHlsdFall[0].GreenString = true;
SongAnimalHlsdFall[0].FallCompleteFlag = false;
SongAnimalHlsdFall[1].FallStartTime = 1.000f;
SongAnimalHlsdFall[1].FallEndTime = 3.033f;
SongAnimalHlsdFall[1].AnimalColour = 2;
SongAnimalHlsdFall[1].GreenString = false;
SongAnimalHlsdFall[1].FallCompleteFlag = false;
...............................................
..............................................
...............................................
}Sjzqm_Free()
{
if (SongAnimalHlsdFall)
{
delete[] SongAnimalHlsdFall;
SongAnimalHlsdFall = NULL;
}
}
各位大哥,我这样释放错了,是吗?for(i = 0; i < 219; i ++)
{
if (SongAnimalSjzqmFall[i])
{
delete[] SongAnimalSjzqmFall[i];
SongAnimalSjzqmFall[i] = NULL;
}
}
for(i = 0; i < 100; i ++)
{
if (SongAnimalSrklFall[i])
{
delete[] SongAnimalSrklFall[i];
SongAnimalSrklFall[i] = NULL;
}
}
for(i = 0; i < 150; i ++)
{
if (SongAnimalHlsdFall[i])
{
delete[] SongAnimalHlsdFall[i];
SongAnimalHlsdFall[i] = NULL;
}
}要这样写,是不?
还是我错在别的地方?谢谢!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货