|
안녕하세요. 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;
}
|