C 언어 메모리 공간의 사용 - 메모리 분포도

1140 단어
메모리 분포도
 //
                  
------------------------------- 3G
                          RW
-----------
          malloc
-----------
              (     :    ,    )static RW  :    data      static bss 
           "hello"          R        const           :  TEXT
             code                R                        :  TEXT
------------ 
0x0 :

1, 읽기 전용 공간
{
전역 데이터 컨트롤, 데이터만 읽는 코드 세그먼트
}
정적 공간.프로그램이 시작되기 전에 메모리에 존재합니다.전체 프로그램이 끝난 후에야 메모리를 방출하여 생존 주기가 가장 길다
2, 스택 공간
국부 변수.출고
운행할 때만 있습니다.실행할 때 함수 내부에서 사용하는 변수는 함수가 되돌아오면 바늘이 창고 공간을 가리키지 않고 생존 주기는 함수 안이다
3, 공간 쌓기
운행할 때만 있습니다.실행할 때, 내가 관리하는 분배와 방출 공간을 자유롭게 할 수 있으며, 생명주기는 프로그래머가 결정한다
1> 메모리 할당 필요
malloc (), 일단 성공하면 분배된 주소를 우리에게 되돌려줍니다. 이 새 주소의 읽기 방법은 프로그래머가 유연하게 파악하고 매개 변수를 입력하여 분배된 크기를 지정합니다. 단위는 B입니다.
할당된 크기
 int a[5];     malloc(5*sizeof(int))
char *p;
 p = (char *)malloc(100);
if(p == NULL){
  error
}

      。p     
void fun()
{
  char *p;
   p = (char *)malloc(100);
  return ;
}

2> 메모리 여유 필요
  free(p);

좋은 웹페이지 즐겨찾기