|
클래스(UnicodeString)이 있기때문에 memcpy 저렇게 하면 안됨 ...
압9정 님이 쓰신 글 :
: 안녕하세요. ST_USER_INFO 라는 구조체가 있습니다.
:
: User에 대한 정보를 기록하는 구조체 인데요. 제가 짜는 프로그램은 User가 계속 추가 되어서 동적으로 할당하였습니다.
:
: 그래서 User가 추가될 때 원래 있던 유저 정보를 temp에 넣어두고 User를 지우고 User+1 만큼을 다시 동적으로 할당 하여
:
: temp값을 다시 User에 넣고 새로 추가된 정보를 넣는 방법으로 프로그램을 짜볼려고 합니다. 그런데 잘 안되네요...ㅜ
:
: 잘못된 부분이 있다면 알려주세요.ㅜㅜ
:
: typedef struct UserInfo
: {
: UnicodeString Name;
: DWORD dwNum;
: BYTE nType;
: DWORDLONG dwlSize;
: DWORDLONG dwlHA_high;
: DWORDLONG dwlHA_low;
: ST_TIME_INFO stTime;
: }ST_USER_INFO ;
:
: bool Main::AddUser(ST_USER_INFO *a_stUser)
: {
: int i;
: int nOldUser;
:
: nOldUser = m_UserNum; // m_UserNum = 원래 있던 User수
:
: ST_USER_INFO *temp = new ST_USER_INFO [nOldUser];
:
: for(i = 0; i < nOldUser ; i++)
: {
: memcpy(&temp[i], &m_stUser[i], sizeof(ST_USER_INFO)); // stEvidence = 원래 있던 User정보
: }
:
: if(m_stUser != NULL)
: {
: delete [] m_stUser;
: m_stUser = NULL;
: }
:
: m_stUser = new ST_USER_INFO[nOldUser + 1];
: memset(m_stUser , 0, sizeof(ST_USER_INFO)*(nOldUser + 1));
:
: for(i = 0; i < nOldUser ; i++)
: {
: memcpy(&m_stUser[i], &temp[i], sizeof(ST_USER_INFO));
: }
:
: memcpy(&m_stUser [nOldItems], a_stUser, sizeof(ST_EVIDENCE_INFO)); // a_stUser = 추가된 User 정보
:
: delete [] temp;
: }
|