[問題] 程式執行後會有access violation
IDE: BCB
問題: 程式執行後會有access violation,
判斷應該是由於程式中CScenePoint tmp0(w,h)以及arr.push_back(tmp0)皆會執行解構子
因此我有另外對
CScenePoint& CScenePoint::operator=(const CScenePoint &)
進行overwrite,但沒有用...想請問各位,是否能給些提示告訴我應該加什麼。
謝謝! 程式碼如下:
//---------------------------------------------------------------------------
#include <vector>
#pragma hdrstop
using namespace std;
//---------------------------------------------------------------------------
#pragma argsused
//---------------------------------------------------------------------------
class CScenePoint
{
public:
CScenePoint(): m_width(0), m_height(0), m_bits(16), m_data(NULL) {};
CScenePoint(int w, int h): m_bits(16)
{
m_width = w;
m_height = h;
m_data = (int*)malloc(sizeof(int)*m_width*m_width*m_bits);
}
~CScenePoint()
{
if(m_data) free(m_data);
m_data = NULL;
}
private:
int m_width, m_height, m_bits;
int *m_data;
};
//---------------------------------------------------------------------------
int main(int argc, char* argv[])
{
vector<CScenePoint> arr(1);
int w = 1392, h = 1040;
CScenePoint tmp0(w,h);
arr.push_back(tmp0);
return 0;
}
//---------------------------------------------------------------------------
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.169.40.70
推
12/08 23:35, , 1F
12/08 23:35, 1F
推
12/09 00:00, , 2F
12/09 00:00, 2F
→
12/09 00:20, , 3F
12/09 00:20, 3F
→
12/09 23:20, , 4F
12/09 23:20, 4F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章