C 언어 메모리 공간의 사용 - 메모리 분포도
//
------------------------------- 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);
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.