c++ 에서 구조체 메모리 해제.
글쓴이: i_wish_awk_sed_perl / 작성시간: 토, 2004/10/23 - 1:43오전
/* struct.cpp */ #include <iostream> #include <cstring> #include "data.h" using namespace std; int main(void) { struct ne n; char *msg = "message"; n.msg = new char [strlen(msg) + 1]; n.id = 10; strncpy(n.domain, "hihi.com", 40); strncpy(n.msg, msg, strlen(msg)); cout << n.id << " " << n.domain << " " << n.msg << "\n"; delete [] n.msg; return(0); }
/* data.h */ struct ne { int id; char domain[40]; char *msg; };
위와 같이 코드를 작성했습니다. 여기서 delete [] n.msg; 이런식으로 메모리를 해제하는것이 맞는건지 모르겠습니다. 잘 돌아가긴 하는데 이런식으로 작성하는게 맞는지요? 또한 구조체 내에서 포인터를 저런식으로 할당해도 되나요?
Forums:
맞습니다.할당. 삭제.적절하게 잘 사용하신듯.굿이
맞습니다.
할당. 삭제.
적절하게 잘 사용하신듯.
굿이 네이티브 자료형 배열할당이라면 malloc와 free를 사용하는것도
(class라면 new와 delete강추)....
괜찮은 방법일듯 싶어요..
참고로 구조체 내부의 포인터도 하여튼 포인터랍니다.
댓글 달기