イムベクターに私は、スカラーdelete演算子ここクラッシュ::ベクトル
に関連する何かでアクセス違反を取得し、何らかの理由で新しく作成されたオブジェクトのポインタをプッシュバックしようとしていますクラッシュが起きている場所:
Exception thrown at 0x0F9366CB (ucrtbased.dll) in Battleship.exe: 0xC0000005: Access violation reading location 0xCDCDCDBD.
クラッシュが発生したファイル:
//
// delete_scalar.cpp
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// Defines the scalar operator delete.
//
#include <crtdbg.h>
#include <malloc.h>
#include <vcruntime_new.h>
void __CRTDECL operator delete(void* const block) noexcept
{
#ifdef _DEBUG
_free_dbg(block, _UNKNOWN_BLOCK); // *****Crashes here*****
#else
free(block);
#endif
}
これは私がメモリを割り当てる方法を示します。
NetSocket* newSocket_ptr = new NetSocket();
m_sockets.emplace_back(newSocket_ptr);
画像を投稿しないでください。 – PaulMcKenzie
@PaulMcKenzieなぜ私はしないのですか? –
画像の郵便番号です。これらのリンクはいつでも死んでしまう可能性があるため、この問題はリンク先の誰にとっても無益です。第二に、私たちが自分ですべてを入力しない限り、そうしたい場合は問題を複製することは不可能です。第3に、答えを出すときに、コードを入力して答えをコピーして貼り付けるのではなく、エラーを表示する必要があります。ところで、あなたの答えは 'malloc'です。なぜあなたは 'malloc'を使っていますか? 'NetSocket'オブジェクトを作成していません。 – PaulMcKenzie