수안이의 컴퓨터 연구실

  • Mainpage
  • About Me
  • Tags
  • Metapage
  • Notice
  • Location
  • Keywords
  • Guestbook
  • Admin
  • Write an Article
  • Total | 1694324
  • Today | 69
  • Yesterday | 606

1 Articles, Search for 'auto_ptr'

  1. 2007/03/05 auto_ptr
Programming/C++2007/03/05 16:52

auto_ptr

원본 : http://www.debuglab.com/knowledge/autoptr.html

1.요약

영리한 포인터의 일종으로 STL에서 지원해주는 클래스입니다.


2.본문

학교에서 auto_ptr을 배우면서, 이런걸 왜 만들었나하는 생각을 했었습니다. 하지만 여러분은 그 용도를 다 아실테고 사용법을 보죠.

1    #include <crtdbg.h> 

2    #include <memory> 

3    using namespace std; 

4     

5    void Func() 

6    { 

7        auto_ptr<char> p( new char [1]); 

8    //    char* p = new char [1]; 

9     

10        throw 3; 

11     

12    //    delete[] p; 

13    } 

14     

15    int main(int argc, char* argv[]) 

16    { 

17        try 

18        { 

19            Func(); 

20        } 

21        catch(int) 

22        { 

23     

24        } 

25     

26        _CrtDumpMemoryLeaks( ); 

27        return 0; 

28    } 

소스 설명 들어갑니다.

1    #include <crtdbg.h> 
메모리 릭을 가르쳐주는 CRT 함수를 사용하려고 포함

2    #include <memory> 

3    using namespace std; 

auto_ptr은 memory에 선언되어있고 STL 입니다.

7        auto_ptr<char> p( new char [1]); 

이 글의 주제.
p 는 스택에 생성된 객체이기 때문에 함수의 종료시에 소멸자가 호출되고 소멸자 안에서는 힙에 생성된 메모리 블럭을 해제해주겠죠.

가장 중요한 점은 exception이 발생한 경우라도 소멸자의 호출이 보장된다는 사실입니다.( 이는 메모리 릭이 발생하는지 안하는지 보면 알겠죠..)

10        throw 3; 
강제로 exception 발생
26        _CrtDumpMemoryLeaks( );
메모리 릭이 있는 경우 덤프


3.예제



4.참고

The C++ Programming Language 3E



- 2001.08.13 Smile Seo -
"C++" 카테고리의 다른 글
  • stringstream (0)2007/03/08
  • upper_bound/lower_bound (0)2007/03/08
  • auto_ptr (0)2007/03/05
  • 템플릿을 이용한 동기화 클래스 만들기 (0)2007/03/05
  • Override를 통해 잃어버리는 것들 (0)2007/03/01
2007/03/05 16:52 2007/03/05 16:52
Posted by webdizen
Tags auto_ptr
No Trackback No Comment

Trackback URL : http://www.webdizen.net/blog/trackback/2679

Leave your greetings.

[로그인][오픈아이디란?]

«Prev  1  Next»

RSS HanRSS
Blog Image
webdizen
이곳은 컴퓨터에 대해 연구하고, 공유하고, 소통하기 위한 연구실입니다. 개인적으로는 OLAP, Data Mining, Semantic Web, Data Modeling에 대해서 연구하고 있습니다.

Categories

전체 (3009)
Webdizen (141)
Life (6)
Diary (16)
Blog (9)
IDEA (2)
Travel (10)
Book (16)
Photo (7)
Movie (8)
Music (14)
Leisure Sports (10)
Funny (6)
Hardware (121)
Software (120)
Windows (5)
Unix & Linux (120)
Installation (5)
Kernel (10)
System (34)
Develop (22)
X-Window (0)
Applicaton (31)
Security (4)
Framework (2)
Hadoop (2)
Programming (804)
Algorithm & Data Structure (1)
Assembly (38)
UNIX/Linux C (95)
C++ (128)
STL (4)
Java (38)
Win32 API (92)
ATL/COM (44)
MFC (151)
.NET (26)
WCF/WPF (4)
C# (28)
Network Programming (17)
Database Programming (12)
OpenGL / DirectX (13)
Multimedia Programming (0)
Game Programming (21)
Parallel Distributed Progra... (0)
Reverse Engineering (0)
Debugging (9)
Python (1)
Ruby (1)
Ruby on Rails (1)
QT (4)
GTK (0)
JSP (0)
PHP (6)
ASP.NET (6)
ASP (2)
Development (28)
Useful Library (2)
Data Modeling (0)
Database (105)
Oracle (4)
MSSQL (41)
MySQL (2)
Data Warehouse (2)
Data Mining (4)
Network (66)
Web (79)
DHTML (4)
XHTML (1)
Javascript (1)
CSS (1)
AJAX (9)
XML (11)
Flex (1)
Silverlight (3)
Security (91)
DoS (1)
Kernel (10)
Scanning (3)
Sniffing (0)
Spoofing (4)
Overflow (28)
Web (11)
Shell (10)
Format String (14)
Window (2)
Embedded (70)
Multimedia (27)
Mobile (14)
Graphic (24)
Management (633)
Knowledge (581)
Hadoop (0)

Notice

  • 메타 블로그 사이트에 등록
  • 새해 맞이 블로그의 변화
  • 블로그 명칭 변경
  • 도메인(www.webdizen.net) 구...
  • TEXTCUBE 1.6.1로 업그레이드...

Tags

  • 후처리
  • DOTNAME
  • WebOS
  • semantic
  • 암기
  • 공부
  • 페이지 폴트
  • WM_COPYDATA
  • 첨단정보기술연구센터
  • 데이터 소유
  • Photography
  • /etc/shadow
  • robots
  • The Secret
  • 수영
  • 파이썬
  • XHTML
  • delete
  • 업그레이드
  • 60주년 기념관

Recent Articles

  • 트위터(Twitter)의 시작!.
  • 청년 리더의 조건.
  • 애플의 타블렛 PC - 아이패드....
  • 미래의 인터페이스 - 육감 기....
  • 기초발성법 동영상 강좌.

Recent Comments

  • 학교 과제물중 쓰레드에 대하....
    장진혁 03/17
  • 관리자만 볼 수 있는 댓글입....
    비밀방문자 03/12
  • 상대방의 이야기를 열심히 경....
    DoNuts 03/03
  • Lots of students know techn....
    Bobbi35Shannon 02/25
  • 좋은글 잘 보고 갑니다..
    Und_hacker 01/08

Recent Trackbacks

  • printf,scanf를 이용한 형식....
    yundream의 프로그래밍 이야기 03/10
  • 파일 열기/저장하기 CFileDialog.
    은마군의 나태블록 2009
  • World IT Show 2008.
    상우 :: Oranzie's BLOG 2008
  • cvs서버 설치하기.
    3인3색 2008
  • 속속 공개되는 Google Chart....
    PHP와 Web 2.0 2007

Archive

  • 2010/02 (1)
  • 2010/01 (6)
  • 2009/12 (5)
  • 2009/09 (3)
  • 2009/08 (1)

Calendar

«   2010/03   »
일 월 화 수 목 금 토
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

Bookmarks

    • Administration
      • IIS.NET
      • NTFAQ
      • OS의 모든 것
      • 리눅스포털
    • Database
      • SQL Server Central
      • SQL Team
    • Development
      • .NET Heaven
      • ASP Alliance
      • ASP.NET 2.0
      • Bullog.net
      • C# Corner
      • C++ (C PlusPlus.com)
      • C++ Reference
      • CodeGuru
      • CodePlex
      • DebugLab
      • Dev Articles
      • Devpia
      • DotNet Junkies
      • DotNet Zone
      • Driver Online
      • GOSU.NET
      • HOONS 닷넷
      • Joinc 팀블로그
      • KOSR
      • MSDN Home Page
      • OSR Online
      • Sky.ph - 개발자 커뮤니...
      • TAEYO.NET
      • The Code Project
      • WindowsClient.net
      • 김상욱의 개발자 Side
      • 조인시 위키
    • Human Networks
      • belief21c's e-space
      • I think I can
      • Invisible Rover's Blog :D
      • Rodman®
      • ■ Feel So Good~! ■
      • 까만 나비
      • 나를 가꾸는 시간.
      • 나만의 즐거움~~!
      • 단녕
      • 상우 :: Oranzie's BLOG
    • Information Technology
      • Microsoft TechNet
      • 지디넷코리아 - 글로벌...
    • Security
      • FoundStone
      • milw0rm
      • NewOrder
      • OpenRCE
      • Phrack.org
      • Reverse Engineering b1...
      • Reverse Engineering Team
      • RootKit
      • SecurityFocus
      • SecurityXploded by Nag...
      • Wow Hacker
      • Zone-H
Textcube
Louice Studio Inc.
Powered by Textcube. Original designed by Tistory.