수안이의 컴퓨터 연구실

  • Mainpage
  • About Me
  • Tags
  • Metapage
  • Notice
  • Location
  • Keywords
  • Guestbook
  • Admin
  • Write an Article
  • Total | 1620662
  • Today | 42
  • Yesterday | 482

Programming/C++2007/03/19 11:00

메모리가 모자랄 경우에 대비한다

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

7. 메모리가 모자랄 경우에 대비한다.

내용은 이렇습니다.
‘Operator new 가 요구된 메모리를 할당할 수 없을 때는 예외를 발생시키는데 이것을 처리하자’

이런 황당한 상황이 자주 있지는 않겠지만 이책에서는 몇 가지 방법을 제시하였습니다.

1) 매크로를 이용하는 방법

#define NEW(PTR,TYPE) \ 

try{(PTR)=new TYPE;} \ 

catch(std::bad_alloc){assert(0);} 

위의 std::bad_alloc은 operator new 가 메모리 할당 요구를 만족시킬수 없을 때 던지는 예외 타입입니다. assert(0)은 전달된 표현식이 0이 아니면 에러 메시지를 출려하고 abort를 호출합니다.

->그러나 위의 매크로는 new가 이용될수 있는 여러가지 방법들을 고려하지 않았습니다. 배열을 생성한다 던지 인자가 있는 생성자를 부른 다던지 하는 방법들 말입니다.


2) new handler를 이용하는 방법
메모리가 모자라는 경우를 처리하는 함수를 지정하기위해 set_new_handler를 호출합니다.

set_new_handler는 헤더에서 다음과 같이 지정됩니다.

typedef void(*new_handler)(); 

new_handler set_new_handler(new_handler p) throw(); 



// 사용예는 다음과 같습니다. 

void noMoreMemory(){ 

    cerr<<”요청된 메모리를 확보하지 못함\n”; 

    abort(); 

} 



int main(){ 

    set_new_handler(noMoreMemory); 

    int* pBigdataArray=new int[1000000000]; 

} 

뒤에 주절이 주절이 설명이 아주 많습니다.

-참고

Scott Meyers,EffectiveC++



- 2001.08.13 Smile Seo -

"C++" 카테고리의 다른 글
  • exception 클래스 확장하기 (0)2007/03/21
  • operator new 와 operator delete 작성시 관례를... (0)2007/03/19
  • 메모리가 모자랄 경우에 대비한다 (0)2007/03/19
  • malloc과 free 보다는 new와 delete를 사용한다. (0)2007/03/19
  • based addressing (0)2007/03/17
2007/03/19 11:00 2007/03/19 11:00
Posted by webdizen
No Trackback No Comment

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

Leave your greetings.

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

«Prev  1 ... 535 536 537 538 539 540 541 542 543 ... 2998  Next»

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

Categories

전체 (2998)
Webdizen (134)
Life (6)
Diary (16)
Blog (9)
IDEA (1)
Travel (10)
Book (14)
Photo (7)
Movie (7)
Music (13)
Leisure Sports (10)
Funny (5)
Hardware (119)
Software (120)
Windows (5)
Unix & Linux (119)
Installation (4)
Kernel (10)
System (34)
Develop (22)
X-Window (0)
Applicaton (31)
Security (4)
Framework (2)
Hadoop (2)
Programming (805)
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 (3)
Development (28)
Useful Library (2)
Data Modeling (0)
Database (105)
Oracle (4)
MSSQL (41)
MySQL (2)
Data Warehouse (2)
Data Mining (3)
Network (66)
Web (78)
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

  • 미래
  • ShellExcute
  • 탁구
  • 발렌타인
  • 네트워크 라인
  • ADODB
  • Prado Framework
  • WebTool
  • Geotracking
  • Jelix
  • Assessment
  • Cataloging
  • STL
  • Secure
  • 소망
  • RAISERROR
  • MPEG
  • Programming Optimization
  • 강의
  • 몸으로 생각하기

Recent Articles

  • ASCII Code의 CRLF 제거 방법.
  • Hadoop 에서 c++ API 이용시....
  • Ubuntu Linux에서 Hadoop 구....
  • 내 심장을 한껏 뛰게한 "국가....
  • 스타 스키마 데이터베이스 설....

Recent Comments

  • ■ 온라인카지노 ▶ http://L....
    asdf 11/21
  • 그리고 혹시 해외여행자보험....
    kim 11/05
  • ★★실제 바다게임장과 똑같....
    asdf 11/04
  • sbsyama.co.to← 짱5000만당....
    asdf 11/04
  • ♡KicaZ??o(???) 바카라사....
    fdsf3fass 11/03

Recent Trackbacks

  • 파일 열기/저장하기 CFileDialog.
    은마군의 나태블록 02/11
  • World IT Show 2008.
    상우 :: Oranzie's BLOG 2008
  • cvs서버 설치하기.
    3인3색 2008
  • 속속 공개되는 Google Chart....
    PHP와 Web 2.0 2007
  • 마방진을 구하는 프로그램.
    Oranzie's BLOG 3 2007

Archive

  • 2009/09 (3)
  • 2009/08 (1)
  • 2009/03 (1)
  • 2009/02 (9)
  • 2009/01 (13)

Calendar

«   2009/11   »
일 월 화 수 목 금 토
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          

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.