생활
C++ MFC 메모리 관리 질문드립니다.
안녕하세요
MFC 프로그램 중 메모리 관리에 관해 질문좀드립니다.
1. double* dDouble = new double; //new 더블형 생성
2. pData->Array.Add((double*)dDouble); //CPtArray 배열에 더블값 데이터 추가.
3. double dDouble1 = (double)pData->Array.GetAt(0); // 배열에 첫번째 값 가져와서 더블1 사용.
4. dDouble1값 사용.
5. pData->Array.RemoveAt(0); // 배열 첫번째값 삭제
6. delete dDouble1; //new 메모리 삭제
위처럼 사용할시 1,2번은 계속 누적식으로 사용하여 데이터를 여러개 저장합니다.
그리고 3,4,5,6번처럼 배열에값 사용후 삭제해주는데 비쥬얼스튜디오로 메모리 힙사용 찍어보면
Array배열에 메모리가 증가하는것같습니다.
보통 Array.RemoveAll();
Array.FreeExtra();
배열 전체데이터를 삭제할때는 위처럼 extra()를 사용하여 메모리를 비워주는데
RemoveAt으로 하나씩 꺼낼때도 FreeExtra를 사용해주어야하나요?
위내용중 잘못된부분 피드백좀 부탁드려요.
선배님들의 답변 기다립니다.
55글자 더 채워주세요.
1개의 답변이 있어요!
- 1. double* dDouble = new double; //new 더블형 생성 2. pData->Array.Add((double*)dDouble); //CPtArray 배열에 더블값 데이터 추가. 3. double dDouble1 = (double)pData->Array.GetAt(0); // 배열에 첫번째 값 가져와서 더블1 사용. 4. dDouble1값 사용. 5. pData->Array.RemoveAt(0); // 배열 첫번째값 삭제 6. delete dDouble1; //new 메모리 삭제
여기서,
double* dDouble = new double;이렇게 메모리를 생성했으면 같은 주소를
del dDouble해제를 시켜줘야됩니다.
같은 주소인지 파악하시면 어떤 걸 해제시켜줘야 되는지 확인되실 꺼에요.