|
그럼 변수 하나 하나 대입해 주면 될까요?
for(i = 0; i < nOldUser ; i++)
{
temp[i].Name = m_stUser[i].Name;
temp[i].dwNum = m_stUser[i].dwNum;
...
}
이런식으로 하면 되나요??
Lyn 님이 쓰신 글 :
: 클래스(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;
: : }
|