C ++ 프로그래밍 학습 (H) Zatan] 신 삭제 동적 메모리 할당

 

주요 사업장의 끝 바쁜 집주인 전에 약간의 시간이 더 동안을위한 정지, 오늘, 단지 물론 로봇 큰 운영, 파이썬의 사용과 파트너의 작은 그룹 할 산업용 로봇의 온라인 프로그래밍을하고, 갑자기 대규모 프로젝트를 읽어 보지 않았 시간이 오래 기억 바로 ~ 채우기

 

다음 몇 블로거는 주로 일반적이지의 일부를 정제 블로그 있지만 지식은 대규모 프로젝트를 읽을 때 발생하는 것으로 이해되어야한다. 이 새로운 삭제 한 다음 다른 지식의 메모리 할당 확장에 대한 이야기입니다.

 

새로운 및 삭제

이번에는 우리가 언급 할 필요가 동적으로 할당 된 메모리를

때로는 운전 데이터 중 프로그램이 배열 동적 방법을 사용하여 할당해야 얼마나 큰이 시간을 알고,이 등 좋은 저장 공간, 데이터 크기, 배열 크기의 정의를 달성하기 위해 많은 시간이있다, 그러나 때때로 모른다. (이것은 포인터와 동적 할당 프로세스가 변수 이름을 사용할 수없는 이유,이 시간, 우리는 저장 공간에 대한 액세스를 해결해야하는 첫 번째 주소를 반환)입니다.

그래서 무엇을 첫 번째 주소는 ?

첫 번째 주소는이 점유 변수 저장 영역의 제 1 유닛의 어드레스이다. 예를 들어, 어레이의 정의는, 상기 어레이의 어드레스의 첫 번째 숫자는 제 어드레스이다.

(1) 오브젝트의 응용

사용법 : NEW + 유형 이름

메모리 운영자 릴리스 : 삭제, 방법을 사용하여 : 삭제 + 포인터 P (P 포인터 포인트를 메모리를 해제하기), p는 new 연산자의 값을 반환해야합니다.

예를 들면 :

. (1 개)  INT는 * P는 = 새로운 새  INT (123) 인 값으로 P // 포인트 값 123
 (2)  삭제 P;

 

(2) 동적 할당 및 할당 해제의 배열

분포 : 새로운 + + 형명 [] 배열 길이

자료 : 삭제 [] 배열 명 +

참고 : [릴리스 우선 어드레스의 배열 인 경우] [부가이 릴리스는, 전체 어레이를 나타낸다

C ++의 과정 칭화 대학에서 봐야, 자세한 설명이 있습니다 : https://www.bilibili.com/video/av62677973?p=8

왜 메모리를 동적으로 할당? (힙 메모리의 동적 할당, 스택 포인터가 정의되는 영역)

1. 애플리케이션 수 동적 동적 객체에 필요한 메모리 공간을 결정하는;

큰 개체, 너무 큰 개체를 용인 할 수 없다 스택 영역의 보통 크기를 저장할 2. 쉬운;

전체 객체를 전송하는 것보다 편리하고 효율적인 3. 통과 포인터;

문제를 다시 힙 무엇인지, 스택은 무엇인가? 다른 유사은 없다?

물론이야!

도 1에서, 스택 영역 (스택) - 방출 자동 컴파일러, 저장 기능 파라미터, 로컬 변수 등이 할당. 스택 데이터 구조와 유사하게 동작한다.
2, 힙 영역 (더미) - 프로그래머가 OS에 의해 회수 될 수있는 프로그램의 끝에서 분리되지 않는 경우 일반적으로 프로그래머가 할당이 해제된다. 참고는 완전히 다른 스택 데이터 구조 즉, 이것은 유사한 분포리스트 접촉.
(3), 글로벌 영역 (무부하 영역) (정적) -, 전역 변수, 정적 변수는 하나의 저장 영역에 전역 및 정적 변수를 초기화하고, 초기화 변수의 정적 글로벌 변수의 위상을 초기화되지되고 다른 (BSS)에 인접한 영역. - 시스템에 의해 방출 된 프로그램의 종료 후
4 영역 리터럴 - 상수 문자열 여기 배치된다. 프로그램의 완료가 시스템으로부터 방출 된 후
이진 코드 저장 기능 체 - 5 프로그램 코드 영역.

추천

출처www.cnblogs.com/JuiceCat/p/12151812.html