이유
1. 메모리 릭 발생되기 때문이다.
- new string[100] 했으면 delete []string 해줘야 한다. delete string 하면 100개의 요소중 1개만 해제한다.
- 클래스의 객체라면 소멸자 역시 1번만 발생 된다.
- typedef 사용시 delete시 착각의 위험에 빠질수 있다.
해결 방법
1. 동일한 형식으로 사용 한다.
2. typedef를 사용 하지 마라!
덧붙여
1. 여러 문자열을 할당받고 싶다면 vector<string>을 사용 해라. 더 편하다
1. 메모리 릭 발생되기 때문이다.
- new string[100] 했으면 delete []string 해줘야 한다. delete string 하면 100개의 요소중 1개만 해제한다.
- 클래스의 객체라면 소멸자 역시 1번만 발생 된다.
- typedef 사용시 delete시 착각의 위험에 빠질수 있다.
해결 방법
1. 동일한 형식으로 사용 한다.
2. typedef를 사용 하지 마라!
덧붙여
1. 여러 문자열을 할당받고 싶다면 vector<string>을 사용 해라. 더 편하다
'책 정리 > Effective C++ 2판' 카테고리의 다른 글
항목 10. operator new를 작성한다면 operator delete도 작성한다. (0) | 2008.05.07 |
---|---|
항목 9. new의 "정상"형식을 감추지 않는다. (0) | 2008.05.07 |
항목 8. operator new와 operator delete 작성시 관례를 따른다. (0) | 2008.05.07 |
항목 7. 메모리가 모자랄 경우에 대비한다. (0) | 2008.05.07 |
항목 6. 소멸자에서 포인터 맴버에 대해 delete를 이용 한다. (0) | 2008.05.07 |
항목 4. C++ 스타일의 주석을 지향한다 (3) | 2008.05.07 |
항목 3. malloc과 free보다는 new와 delete를 사용한다. (0) | 2008.05.07 |
항목 2. <stdio.h> 보다는 <iostream>을 사용 한다. (0) | 2008.05.07 |
항목 1. #define보다 const 와 inline을 사용 한다. (0) | 2008.05.07 |
하루에 10개씩 5일 동안 볼 생각이였는데, 내 수준으론 조금 벅차다 (0) | 2008.05.07 |
최근댓글