c++ 구조체 내에 벡터사용하기

crespo07의 이미지

안녕하세요 급하게 질문이 있어 고수님들께 질문드립니다.

잘 돌아 가는 코드에 아래와 같이 Point_ADD라는 vector를 Info struct에 추가를 하였습니다.

그런데 HEAP[Console_dbg.exe]: Invalid address specified to RtlValidateHeap( 003B0000, 021D19C8 )

에러가 나고 있습니다. Info() 및 Info & operator 에 추가를 안해서 그런거 같습니다만.. ^^;;

vector를 사용할때는 생성자 및 소멸자를 잘 작성이 되어야 된다고 들었습니다.

혹시 아시는 분 있으시면, 도와주시면 정말 감사하겠습니다...ㅠ.ㅠ

class point
{
public:
double m_f64x;
double m_f64y;
double m_f64z;

}

typedef struct Info
{

std::vector Point_ADD;

int RSS
BOOL ACTS;
double Deeps[2];
double GDH[2];

Info()
{
RSS=0;
ACTS = FALSE;
memset(Deeps, 0x00, sizeof(Deeps));
ZeroMemory(GDH, 0x00, sizeof((GDH));
}

Info & operator=(const Info& rack)
{
RSS = rack.RSS;
ACTS = rack.ACTS;
memcpy(&Deeps[0],&rack.Deeps[0],sizeof(Deeps));
memcpy(&GDH[0],&rack.GDH[0],sizeof(GDH));

return *this
}

}Info

yukariko의 이미지

벡터의 template가 무엇으로 되어있는지 짤려있네요.
만약 직접만드신 클래스가 자료형이라면
복사생성자를 정의해주어야합니다.
자세한 내용은 인터넷에 그대로 검색하시면 많이 나올겁니다.