提示コードの一番下のところでブレークポイントが発生してしまいます。また提示画像にもある通り文章を日本語にすると
「CRT detected that the application wrote to memory after end of heap buffer」
日本語 「CRTは、ヒープバッファーの終了後にアプリケーションがメモリに書き込んだことを検出しました」
と表示されています。一体どこでメモリリークが発生しているのでしょうか? またマイクロソフトのサイトは専門的過ぎてわかりません。
malloc();してある場所だと思い自分でいろいろprintf();を置いてどこまで実行出来ているか探りましたがわかりません
参考サイト: https://so-zou.jp/software/tech/programming/cpp/run-time-library/memory/
参考サイト: https://docs.microsoft.com/ja-jp/previous-versions/technical-document/ms810466(v=msdn.10)?redirectedfrom=MSDN
//シェーダー関係のログを取得 void Game::GetShader_Log(GLuint shader_type, GLuint Log_type) { GLint bufferSize = 0; GLchar* infoLog = nullptr; //成功したかどうか? glGetShaderiv(shader_type, Log_type, &bufferSize); //ログの長さを取得する glGetShaderiv(shader_type, GL_INFO_LOG_LENGTH, &bufferSize); infoLog = (GLchar*)malloc(sizeof(bufferSize + 10)); if (infoLog != NULL) { GLsizei length;//ログの長さ glGetShaderInfoLog(shader_type, bufferSize, &length, infoLog); if (length > 1)//null文字を含むため一文字以上の場合ログ出力 { fprintf(stderr, "InfoLog:%s\n\n", infoLog); } printf("ああああ\n"); free(infoLog); infoLog = NULL; printf("いいいいいい\n"); } //return true; }




回答2件
あなたの回答
tips
プレビュー