皆さん、私は理解できないヒープ破損エラーが発生しています。char *をC++に割り当てて解放する
char * c = (char *) malloc(1);
// main loop
_gcvt_s(c, 100, ball->get_X_Direction(), 10);
if(pushFont(c, (SCREEN_WIDTH - 30), (SCREEN_HEIGHT - 40), message, screen,
font, textColor) == false)
{
//return 1; // error rendering text.
}
// end main loop
free(c);
上記のコードは、単にその最初のパラメータとして* CHARを受け付け、画面上のテキストを置く私は_gcvt_sで、Cポインタを使用してpushFont()のみの時間です。それ以外は、私はcを使用しません。メインループの後でCをフリーズしようとすると、Visual Studioがヒープ(ヒープの破損)でエラーを取得したというエラーが表示されます。
pushFontの呼び出しをコメントアウトしても、エラーは発生します。
誰も私にヒープの破損を与えるキャラクター(ヒープに割り当てた1バイト)を解放する理由を誰にも説明できますか?
最後に、私のメインループはたくさんのものをやっていますが、バディと私はWinSocketでポンゲームを作っています。残りの本体はゲームのループです。私は投稿が必要だとは思っていませんでしたが、必要であればメインループ全体で投稿を更新しますが、私はmalloc()とfree()について理解していると思います。
おかげで、すべて、
この質問を "C++"から "C"に戻すべきではないですか? –