iOS 면접 문제: 쌓 기와 창고 의 차이
(stack)
은 컴 파 일 러 가 자동 으로 분배 하여 방출 하고 저장 방법 (함수) 의 매개 변수 값, 국부 변수의 값 등 이다. 창 고 는 낮은 주소 로 확 장 된 데이터 구조 로 연속 적 인 메모리 구역 이다.즉, 창고 꼭대기 의 주소 와 창고 의 최대 용량 은 시스템 이 미리 정 한 것 이다. (heap)
일반적으로 프로그래머 가 분배 하여 방출 한다. 만약 에 프로그래머 가 방출 하지 않 으 면 프로그램 이 끝 날 때 OS 에서 회수 하고 높 은 주소 로 확 장 된 데이터 구 조 는 연속 적 이지 않 은 메모리 구역 으로 쌓 아서 얻 는 공간 이 비교적 유연 하 다.
: 더미 에 있어 빈번 한 new / delete 는 반드시 메모리 공간의 불 연속 을 초래 하여 대량의 파편 을 만들어 프로그램의 효율 을 떨 어 뜨 릴 것 이다.스 택 에 있어 서 이 문 제 는 존재 하지 않 습 니 다. 스 택 은 선진 적 인 대기 열 이기 때문에 그들 은 이렇게 일일이 대응 하기 때문에 스 택 중간 에서 메모리 블록 이 꺼 질 수 없습니다.
: 무 더 기 는 모두 동태 적 으로 분배 되 고 정태 적 으로 분배 되 는 더미 가 없다.스 택 은 두 가지 분배 방식 이 있 습 니 다. 정적 분배 와 동적 분배 입 니 다.정적 분 배 는 컴 파 일 러 가 완성 한 것 이다. 예 를 들 어 국부 변수의 분배 이다.동적 분 배 는 alloca 함수 에 의 해 분배 되 지만 스 택 의 동적 분배 와 더 미 는 다 릅 니 다. 그의 동적 분 배 는 컴 파일 러 에 의 해 방출 되 고 우리 가 손 으로 실현 할 필요 가 없습니다.
: 스 택 은 기계 시스템 이 제공 하 는 데이터 구조 로 컴퓨터 는 바 텀 에서 스 택 에 지원 을 제공 합 니 다. 전문 적 인 레지스터 저장 스 택 의 주 소 를 분배 하고 스 택 에서 나 오 는 것 은 모두 전문 적 인 명령 을 집행 하기 때문에 스 택 의 효율 이 비교적 높다 는 것 을 결정 합 니 다.더 미 는 C / C + + 함수 라 이브 러 리 에서 제공 하 는데 그 메커니즘 은 매우 복잡 하 다. ( )(static)
전역 변수 와 정적 변수의 저장 소 는 한 곳 에 놓 여 있 습 니 다. 초기 화 된 전역 변수 와 정적 변 수 는 한 지역 에 있 고 초기 화 되 지 않 은 전역 변수 와 초기 화 되 지 않 은 정적 변 수 는 인접 한 다른 지역 에 있 습 니 다.프로그램 이 끝 난 후에 시스템 이 방출 됩 니 다.
- 상수 문자열 은 바로 여기에 놓 여 있다.프로그램 이 끝 난 후 시스템 에서 방출 됩 니 다.
- 함수 체 를 저장 하 는 바 이 너 리 코드 이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.