C의 전역 변수에 대한 메모리 할당: 스택 대 힙
C에서 데이터 구조가 전역적으로 선언될 때 다음과 같은 질문이 발생합니다. 스택 메모리나 힙 메모리를 소모합니다. 이를 이해하기 위해 일반적인 C 프로세스의 메모리 레이아웃을 살펴보겠습니다.
C 프로세스의 메모리 레이아웃
C 프로세스는 일반적으로 5개의 서로 다른 메모리 영역을 할당합니다.
전역 변수 할당
전역 변수가 선언되면 해당 메모리는 데이터 세그먼트 또는 bss 세그먼트.
따라서 전역 변수는 의 일부인 데이터 세그먼트 또는 bss 세그먼트에 저장됩니다. 정적 메모리가 할당됨 program.
예
주어진 예에서 배열 arr은 struct AAA 유형의 전역 변수입니다. 초기화되었는지(기본값이 있음) 또는 초기화되지 않았는지(가비지 값 포함)에 따라 데이터 세그먼트 또는 bss 세그먼트에 할당됩니다.
결론
요약하자면 C의 전역 데이터 구조는 프로그램에 할당된 정적 메모리, 특히 데이터 세그먼트나 bss 세그먼트에서 메모리를 소비합니다. 스택 또는 힙 메모리 영역.
위 내용은 C의 전역 변수는 메모리를 어디에 저장합니까(스택 또는 힙)?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!