deque<deque<deque<int>>> obj1;
3차원 배열이 있고 3*3*3의 구조로 메모리를 할당했다고 했을 때, 이 배열에 대해
obj1.clear();
호출하면 할당된 3*3*3 메모리가 모두 삭제되나요? 혹시 메모리 누수가 발생하지 않는지 궁금합니다. 만약 메모리 누수가 발생한다면, 어떻게 메모리를 해제해야 하나요?
int면 문제없고, 기본 데이터형이 아니라 포인터형일 경우에 new나 malloc을 사용했으면 메모리 누수가 발생합니다.
deque<deque<deque<Test>>> obj1;
위와 같이 객체를 선언했습니다. 그리고 Test 클래스는
class Test { public: char* chs; Test() { chs=new char[6]; chs[0]='a', chs[1]='b', chs[2]='c', chs[3]='d', chs[4]='e', chs[5]=0; } ~Test() { delete[] chs; chs=NULL; } };
이렇게 정의했다고 했을 때, obj1.clear() 이라고 하면 Test 객체의 메모리가 누수 없이 삭제되나요? 아니면 메모리 누수가 발생하나요?
본인 맞습니다. 인증샷 우헤헤헤... 로 대신합니다.
지금 시험해봤는데, 메모리 누수 발생하지 않네요. 위와 같은 경우가 궁금했었습니다.
동적할당한게 없으니까 상관없죠. Test내부에서 릭이있고 없고는 Test의 문제이지 deque가 신경쓸바가 아닙니다.
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
int면 문제없고, 기본 데이터형이 아니라 포인터형일
int면 문제없고,
기본 데이터형이 아니라 포인터형일 경우에 new나 malloc을 사용했으면 메모리 누수가 발생합니다.
그럼 이 경우에 메모리 누수가 발생한다는 말씀이신가요?
위와 같이 객체를 선언했습니다. 그리고 Test 클래스는
이렇게 정의했다고 했을 때,
obj1.clear() 이라고 하면 Test 객체의 메모리가 누수 없이 삭제되나요? 아니면 메모리 누수가 발생하나요?
본인 맞습니다.
인증샷
우헤헤헤... 로 대신합니다.
이 경우에는 발생하지 않네요..
지금 시험해봤는데, 메모리 누수 발생하지 않네요. 위와 같은 경우가 궁금했었습니다.
본인 맞습니다.
인증샷
우헤헤헤... 로 대신합니다.
동적할당한게 없으니까 상관없죠. Test내부에서
동적할당한게 없으니까 상관없죠. Test내부에서 릭이있고 없고는 Test의 문제이지 deque가 신경쓸바가 아닙니다.
댓글 달기