宿題のオブジェクトの配列を削除する方法を理解するのに問題があります。
宣言は次のようになります。
Sprite* gCharacter[64] ;
そして、WndProc関数で。
case WM_DESTROY:
for(int i = 0; i < 64;i++){
delete gCharacter[i];
}
delete gBackground;
delete gBackBuffer;
DeleteDC(ghSpriteDC);
PostQuitMessage(0);
return 0;
このforループを使用すると、次のようなものを試してみる場合のように、アサーションエラーが発生します。
delete gCharacter[0];
delete gCharacter[0];
なぜそれが起こっているのか、そしてこの配列を適切に削除する方法がわかりません。何もなければ、手動で入力します。delete gCharacter[from 0 to 63]
しかし、それはかなり厄介に見えます。
これは修正されました
for(int i = 0; i < 180; i++){
gCharacter[i] = 0;
delete gCharacter[i];
}
このエラー:_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)
しかし、なぜ最初にNULL値を設定する必要があるのかわかりません。