| 
point 라는 클래스나 Info 라는 구조체의 변수들을 보니
 기본 대입 연산자로도 원하는 깊은 복사가 될텐데요?
 물론 vector도 포함해서...
 따라서 대입 연산자를 정의 안해도
 
 Info A,B;
 -- A에 값을 채움 --
 B=A;
 
 B는 A와 동일한 값을 가집니다.
 
 또 한, Info 라는 구조체에 소멸자를 정의 해주지 않아도
 기본 소멸자가 호출될 때 vector의 소멸자도 호출 됩니다.
 
 제가 보기엔 구조체의 함수 문제가 아니라
 구조체의 사용에 문제가 있는것 같은데...
 
 애러가 발생하는 부분의 코드를 봐야 정확히 알겠네요.
 
 
 
 
 이준원 님이 쓰신 글 :
 : 안녕하세요 급하게 질문이 있어 고수님들께 질문드립니다.
 :
 : 잘 돌아 가는 코드에 아래와 같이 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> 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
 :
 |