본문 바로가기

도서 소개

C 포인터의 이해와 활용: 메모리 관리의 핵심 기술


포인터와 메모리에 관한 포괄적이고도 광범위한 이해를 제공한다!

포인터의 강력함과 유연함으로 C 언어 완벽 마스터!


출판사 제이펍

원출판사 O’Reilly

원서명 Understanding and Using C Pointers (원서 ISBN: 9781449344184)

저자명 리차드 리스(Richard Reese) 

역자명 조인중, 강성용

출판일 2013년 12월 20일

페이지 288쪽

판  형 46배판 변형(188*245), 반양장(soft cover)

정  가 24,000원

ISBN 978-89-94506-79-1 (93000)

키워드 메모리 관리 / 포인터 / 동적 포인터 / 함수 / 배열 / 문자열 / 구조체

분야 프로그래밍 언어 / C, C++


관련 사이트

원출판사 도서소개 페이지

아마존 도서소개 페이지

■ 역자 Q&A 메일: 조인중(magician골뱅이asurabalbalta.com), 강성용(ulzima골뱅이gmail.com)


관련 포스트

■ 2013/12/03 - [출간전 책소식] - 오랜만에 만나는 C 포인터 책!


관련 시리즈

■ (없음)


소스 코드 다운로드

■ (없음)


강의 자료

■ 교재로 채택하신 분들에게는 강의교안을 제작할 수 있는 자료를 보내드리도록 하겠습니다(출판사로 메일이나 전화로 연락주세요).


관련 도서

■ (없음)


샘플 PDF(차례, 옮긴이 머리말, 이 책에 대하여, 1장 시작하기, 찾아보기)

C포인터_sample.pdf


정오표 페이지

http://jpub.tistory.com/363


도서구매 사이트(가나다순)


도서 소개
포인터와 메모리에 관한 포괄적이고도 광범위한 이해를 제공한다!
C 포인터와 메모리 관리에 관한 확고한 이해로 여러분의 프로그래밍 실력을 향상시킬 수 있다. 이 책은 포인터가 어떻게 메모리에 대한 동적인 관리 메커니즘과 데이터 구조에 대한 향상된 지원, 그리고 하드웨어에 대한 접근 방법을 제공하는지에 대해 배울 수 있는 실용적인 책이다. 저자인 리차드 리스는 책 전반에 걸쳐 메모리 모델을 통해 배열, 문자열, 구조체, 함수 등을 포인터로 다루는 방법을 보여준다. 

포인터의 강력함과 유연함으로 C 언어 완벽 마스터!
마스터하기는 까다롭지만, 포인터를 이용하면 C 언어가 훨씬 유연하고 강력해진다. 하지만 포인터라는 데이터 타입에 대한 참고 자료가 많지 않다. 이 책은 독자가 입문자이든 숙련자이든지에 상관없이 C/C++ 프로그래머이거나 개발자라면 참조할 수 있는 폭넓은 정보를 담고 있다.

이 책에서 다루는 주요 주제는 다음과 같다.
■ 다양한 포인터 타입의 선언 방법과 포인터에 관한 전반적인 소개
■ 동적 메모리 할당과 해제, 그리고 메모리 관리 기법의 대안
■ 함수에 데이터를 전달하고 반환받는 기술
■ 포인터와 관련된 배열의 핵심적인 측면
■ 문자열의 기초와 문자열에서의 포인터 활용
■ 포인터가 버퍼 오버플로 같은 보안 문제를 일으키는 이유
■ 불투명(opaque) 포인터, 유계(bounded) 포인터, 그리고 restrict 키워드의 활용 등 다양한 포인터의 활용 기법

저자 소개
리처드 리스(Richard Reese) 
리처드 리스는 30여 년 동안 IT 업계와 학계에서 일했다. 최근 10년간은 록히드(Lockheed)사에 소프트웨어 개발을 지원하는 일과 C 기반 네트워크 애플리케이션 개발에 힘썼다. 또한, 그는 강사로서 5년간 업계에 소프트웨어를 교육하였고, 현재는 미국 텍사스 주 스테픈빌에 있는 탈튼 주립대학교(Tarleton State University)에서 부교수로 재직 중이다.

역자 소개
조인중
다행인지 불행인지 모르겠으나 자신도 모르게 개발자의 길에 접어든 지 12년 만에 현실을 깨닫고, 현재는 SK브로드밴드에서 네트워크 보안 업무를 맡고 있다. 이 책은 역자의 두 번째 번역 작품으로, 역자는 두 번째 번역을 하면서 한국말이 얼마나 위대한지, 그리고 한국말이 얼마나 어려운지, 마지막으로 역자가 한국말을 얼마나 못하는지 온몸으로 깨달았다. 최근에는 어떻게 하면 아이를 행복하게 만들 수 있을까 하는 고민으로 하루하루 늙어가고 있다. 함께 옮긴 책으로는 《윈도우 파워셸 3 시작하기》가 있다.

강성용 
청운의 꿈을 안고 마산에서 상경하여 의외로 잘 먹고 잘 살고 있다. 게임빌과 안랩 등에서 13년간 개발자로 일했으며, 고성능 소프트웨어와 디버깅에 관심이 많다. 최근에는 멀티 코어와 분산 환경 개발에 푹 빠져 있다. 함께 옮긴 책으로는 《윈도우 파워셸 3 시작하기》가 있다.

차례
1장 시작하기
포인터와 메모리 2
포인터를 잘 알아야 하는 이유 4
포인터 선언하기 7
포인터 선언을 읽는 방법 9
주소 연산자 10
포인터 값 출력하기 12
간접 참조 연산자로 포인터 역참조하기 14
함수 포인터 15
Null의 개념 15
포인터의 크기와 데이터 타입 21
메모리 모델 21
사전 정의된 포인터 관련 데이터 타입 22
포인터 연산자 27
포인터 산술 연산 27
포인터 비교 33
일반적인 포인터 사용 33
다중 수준 간접지정 33
상수와 포인터 35
요약 42

2장 동적 메모리 관리
동적 메모리 할당 46
메모리 누수 49
동적 메모리 할당 함수 52
malloc 함수 사용하기 53
calloc 함수 사용하기 58
realloc 함수 사용하기 59
alloca 함수와 가변 배열 62
free 함수로 메모리 반환하기 63
해제된 포인터에 NULL 할당하기 64
이중 해제 65
힙 메모리와 시스템 메모리 67
프로그램 종료 시 메모리 해제 67
댕글링 포인터 68
댕글링 포인터 예제 68
댕글링 포인터 다루기 71
메모리 누수 탐지 기능 72
동적 메모리 할당 기술 73
가비지 컬렉션 73
리소스 획득 즉시 초기화 74
예외 처리기 사용하기 75
요약 76



  • 오역 2016.07.02 21:39

    13쪽 가상메모리와 포인터
    주소 출력을 좀 더 복잡하게 하기 위해 가상 운영체제에서 표시되는 포인터의 주소가 실제 물리 메모리 주소가 될 가능성은 없다.
    원문 To further complicate displaying addresses, the pointer addresses displayed on a virtual
    operating system are not likely to be the real physical memory addresses.
    => 주소 출력은 좀 더 복잡하게도 가상 운영체제에서 표시되는 포인터의 주소가 실제 물리 메모리 주소가 될 가능성은 거의 없다.

    운영체제는 페이지에 의해 메모리를 유지할 필요가 있을 때 보조기억장치에 기록하고 필요한 시점에 다시 읽어들이며,...
    원문 If the operating system
    needs memory currently held by a page, the memory may be swapped out to secondary
    storage and then reloaded at a later time,...
    => 페이지에 의해 점유된 메모리가 운영체제에서 필요할 경우 메모리는 보조기억장치에 기록(swap)되고 필요한 시점에 다시 읽어들이며,...