개발자_이훈규
천천히, 빠르게. 개발자의 Repository
개발자_이훈규
전체 방문자
오늘
어제
  • 분류 전체보기 (473)
    • 티스토리 (4)
    • 개발자 뉴스 (2)
    • 소프트웨어 (203)
      • C (7)
      • c++ (25)
      • Objective-C (3)
      • Do it! 반응형 웹디자인 (4)
      • openGL (8)
      • Java (24)
      • Jni (3)
      • Android (9)
      • Wordpress (2)
      • 버그 만난 후 느낀점 (2)
      • Git (3)
      • node js (2)
      • window tablet (1)
      • HTML (3)
      • javascript (3)
      • perl (1)
      • AngularJS (0)
      • JSON (0)
      • Docker (3)
      • python (5)
      • jQuery (1)
      • MFC (4)
      • cocos studio (6)
      • Golang (1)
      • SQLite3 (0)
      • Spring Boot (8)
      • thymeleaf (0)
      • Django (0)
      • iOS (3)
      • skia (0)
      • VBA (0)
      • PHP (2)
      • Oracle (1)
      • JSP (0)
      • R (0)
    • TCP IP (2)
    • 금융 (0)
      • 금융 Study (0)
      • 금융 Archive (0)
      • 금융 Article (0)
    • 개인 프로젝트 (7)
      • gif 홈페이지 만들기 (0)
      • study app만들기 (0)
      • 크롤러 만들기 (1)
      • 카툰 홈페이지 만들기 (1)
      • 외주 홈페이지 만들기 (3)
      • 웹 홈페이지 만들기 (0)
      • 미디어 서버 만들기 (0)
      • 소개팅 어플 만들기 (0)
      • 인스타그램 풀스택 클론 코딩(인강 노트) (0)
      • 주식 모의거래 만들기 (1)
    • html php mysql (0)
    • node.Js (2)
    • 일상 (2)
    • 빈공간 uml 공부 (0)
    • Ubuntu(linux) (12)
    • 맥OS (10)
      • android 설치하기 (2)
    • Programming quizzes (0)
    • IoT (구 유비쿼터스) (16)
      • 라즈베리 파이 (11)
      • 아두이노 (5)
    • 하드웨어 (5)
      • 아수스 비보탭 노트8 asus vivotap no.. (2)
      • 크레마 카르타 (3)
    • 분석할 문장, 구문, 코드 (0)
    • 키보드 (1)
      • 해피해킹 (1)
    • 코드 라이언 (0)
    • 전자기기 (4)
    • Ted (0)
    • NAS (0)
    • 알고리즘 (0)
    • 연합인포맥스 (0)
    • 이벤트 응모함 (4)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

인기 글

태그

  • ubuntu
  • 우분투
  • 개발
  • Java
  • 코드
  • Example
  • CODE
  • C++
  • GIT
  • 설명
  • 예제
  • 소스
  • install
  • 라즈베리 파이
  • error
  • 에러
  • Python
  • 설치
  • C
  • 방법

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
개발자_이훈규

천천히, 빠르게. 개발자의 Repository

소프트웨어

[c언어] 데이터 영역을 설명한 포스트입니다. 재미있네요ㅎㅎ

2014. 2. 5. 14:44

이걸 알고 있으면 기본적으로 스텍에 선언해야 할지 아니면 힙에 선언해야 할지 어떻게 해야 내가 생각하는 방식대로 동작을 시킬 수 있을지 판단하는데 많은 도움이 될 것 같습니다.


원본 주소는 아래 있습니다^^. 


( http://wwww7.com/bbs/zboard.php?id=Study&page=1&sn1=&divpage=1&category=3&sn=off&ss=on&sc=on&select_arrange=headnum&desc=desc&no=57 )



텍스트 영역 :  일반적으로 프로그램의 실행코드가 존재 하는 영역입니다. 
               내 자신이 작성한 코드들이 여기에 속합니다.

데이터 영역 :  전역변수나 정적(static) 으로 사용되는 메모리를 의미 합니다. 
               이를 다시 사용되는 쓰임새에 따라서 3가지로 나눌수 있습니다.
              
              1. 읽기 전용으로 초기화 되는 영역
                일반적으로 .rodata가 대표적인 영역 입니다.  이 부분은 const로 선언된 영역 입니다. 
                그 외에 시스템에 사용된 각종 문자열( print 문의 format string 이나 상수 문자열등이 
                모두 이곳에 속한다. )
              2. 읽기 / 쓰기가 가능한 영역으로 초기화 되는 영역
                .data 영역이 대표적이다. 즉 전역 번수중에 초기값을 가지는 경우를 말한다.

              3. 초기화 되지 않은 영역 ( BSS ( Block Started by Symbol )) 영역이라고 불리는 곳
                 전역변수로 초기화 되지 않고 선언되거나 static으로 선언된 영역을 의미 합니다. 


Stack 영역 :  지역 자동변수 , 즉 임의로 메모리를 잡지 않아도 함수의 시작에서 자동으로 생성되
                고 파기되는 변수를 말한다.  스코프 영역 ( 함수 영역 )을 벗어나면 스택의 frame 릴레
             이에서 해제되므로 자연적으로 파기 된다.  따라서 스코프 안에 존재하는 포인터 변수도
             변수 자체는  auto 변수 이다.  그 안에 담긴 주소값의 영역이 다를 뿐이다. 

힙 ( heap ) 영역 :  힙은 일반적으로 malloc(3) 과 같은 메모리 할당 함수를 사용할 때 받는 메모리
               영역으로서 자동으로 파기 되지 않고 , 힙은 극히 큰 공간이다.  즉 메모리의 전체라고 
               해도 과언이 아니다. 


*  변수의 메모리 위치와 특성 

-- 전역 변수들의 형태에 따른 메모리 위치
int num;    =>  bss 영역에 위치
int num = 1;  =>  data 영역에 위치
char  str[] = "hello world";  =>  data영역에 위치, 읽기/쓰기가 가능
char  *p_str = "hello world" => 문자열 자체는 rodata에 위치 하고 p_str 포인터 변수는 data
                                             에 위치
const char str[] = "hello world" =>  문자열 자체는 rodata에 위치하고 str 변수 자체는 data에 
                                                  위치
static int i_val;  =>  bss 영역에 위치

 



http://wwww7.com/bbs/zboard.php?id=Study&page=1&sn1=&divpage=1&category=3&sn=off&ss=on&sc=on&select_arrange=headnum&desc=desc&no=57

저작자표시 비영리 (새창열림)

'소프트웨어' 카테고리의 다른 글

[c언어] SET_BINARY_MODE가 무엇인가??  (0) 2014.02.06
[c++] mutex, 그는 자신이 걸어 놓은 lock을 통과할 수 있을까?  (0) 2014.02.05
[c++] pthread의 detach란...  (0) 2014.02.04
[펌] pthread 자원 해제에 대한 이야기(pthread_detach, pthread_attr_setdetachstate)  (0) 2014.02.04
[c++] fwrite의 thread-safety란  (0) 2014.02.03
    '소프트웨어' 카테고리의 다른 글
    • [c언어] SET_BINARY_MODE가 무엇인가??
    • [c++] mutex, 그는 자신이 걸어 놓은 lock을 통과할 수 있을까?
    • [c++] pthread의 detach란...
    • [펌] pthread 자원 해제에 대한 이야기(pthread_detach, pthread_attr_setdetachstate)
    개발자_이훈규
    개발자_이훈규
    혼자 꽁양꽁양 개발하면서 놀아요~ - 노트같은 블로그

    티스토리툴바