수안이의 컴퓨터 연구실

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

Programming/C++2007/03/17 11:59

based addressing

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

1.요약

microsoft c++에서는 __base 키워드를 사용해서 base pointer를 지정할 수 있습니다.


2.본문

다음 예제를 보시면 쉽게 이해하실 수 있습니다.

= 다음 예제 =

char* psz = "0123456789"; 

char __based(psz)* p = reinterpret_cast<char __based(psz)*>(0x2); 



std::cout << "*p = " << *p << std::endl; 



psz = "abcdefghijklmnopqrstuvwxyz"; 



std::cout << "*p = " << *p << std::endl; 


= 예제 결과 =

*p = 2
*p = c

여기서 느낄 수 있는 바는 다음과 같습니다.
p의 값은 바꾸지 않았는데도, p가 가리키는 주소의 의미가 변하는구나.

다음과 같은 응용 범위가 있겠습니다.


void *vpBuffer; 



struct llist_t 

{ 

    void __based( vpBuffer ) *vpData; 

    struct llist_t __based( vpBuffer ) *llNext; 

}; 

위와 같은 식으로 정의해서 리스트를 만들면, vpBuffer를 바꿔 줌으로써 쉽게 리스트 전체의 내용이 변하겠죠.

혹은 공유메모리를 사용하는 경우에, 공유메모리 오브젝트가 NT에서는 프로세스 주소공간에서 다른 위치로 맵핑될 수 있습니다. 만약에 공유 데이타에 포인터가 포하된다면 문제가 될 수 있겠죠?

그런 경우에 based addressing 을 사용하면 쉽게 문제를 피해갈 수 있습니다.



- 2001.08.13 Smile Seo -
"C++" 카테고리의 다른 글
  • 메모리가 모자랄 경우에 대비한다 (0)2007/03/19
  • malloc과 free 보다는 new와 delete를 사용한다. (0)2007/03/19
  • based addressing (0)2007/03/17
  • stringstream (0)2007/03/08
  • upper_bound/lower_bound (0)2007/03/08
2007/03/17 11:59 2007/03/17 11:59
Posted by webdizen
No Trackback No Comment

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

Leave your greetings.

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

«Prev  1 ... 553 554 555 556 557 558 559 560 561 ... 3009  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

  • Worker
  • 유레일
  • ADO.NET
  • 고딕지구
  • 미국
  • XCANVAS
  • Datasheet
  • gcc
  • inotify
  • 딤플
  • 친일파
  • NULL
  • 업그레이드
  • Reporting
  • KT
  • 트위터
  • 계정관리
  • Named
  • 도메인
  • 제이콥스 그레나쉬

Recent Articles

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

Recent Comments

  • 경청... 너무나 중요한데.......
    webdizen 14:59
  • 학교 과제물중 쓰레드에 대하....
    장진혁 03/17
  • 관리자만 볼 수 있는 댓글입....
    비밀방문자 03/12
  • 상대방의 이야기를 열심히 경....
    DoNuts 03/03
  • 좋은글 잘 보고 갑니다..
    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
      • Polarux - Linuxing
      • Rodman®
      • 까만 나비
      • 나를 가꾸는 시간.
      • 단녕
      • 상우 :: 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.