C 및 C ++ 응용 프로그램의 유사점과 동적 메모리 공간의 차이

C 및 C ++ 응용 프로그램의 유사점과 동적 메모리 공간의 차이

C 및 C ++ 언어 사이의 관계는, 우리가 이것을 설명 할 수 있습니다, C ++은 C 언어에서 상속,하지만 모두 같은 동적 메모리 공간을 적용하는 방법에 큰 차이 같은 고유 한 기능을 가지고있다.

우선 우리는 동적 메모리 공간을 할당하는 이유의 필요성을 알고 싶어? 

동적 할당 스택 영역 및 힙 영역으로 컴퓨터 메모리의 정적 할당을 대응하는 스택 영역의 공간 상대 가정과 창고로서 이해 될 수 있으며, 훨씬 더 작은 것 면적 스택.

정적 할당은 미리 정해진 크기의 스택 영역에 대한 공간을 할당하는 것이며, 동적 할당 프로그래머는 메모리의 동적 할당을 유지해야하는 것을 알아야한다 얼마나 많은 할당 방법이다.

 

그는 일반적으로는, 각각, 우리는 C와 C ++ 지금의 메모리 공간의 동적 할당의 차이를 보면 말했다 :

다음은 C 코드 스타일의 동적 할당 언어이다 :

 

1 #INCLUDE <STDIO.H>
 2 #INCLUDE <stdlib.h>
 3  INT 의 main () {
 도 4      의 INT *의 P;
5      p = ( INT의 *) 의 malloc ( sizeof 연산자 ( INT ));
(6)      * p = 4 ;
7      의 printf ( " % D \ 없음 " * P);
8      무료 (p);
9      복귀  0 ;
10 }

 

 메모리의 동적 할당이라는 C 언어는 필요 의 malloc () 함수를 무료 () 함수가 메모리를 해제하는 데 사용됩니다, 두 함수는 헤더 파일을 가져 "stdlib.h"할 필요가있다.

유형에 무효 *의 malloc 기능을 기본적으로 응용 프로그램 공간의 매개 변수의 크기는 원하는 반송 주소의 malloc 함수 경우, 타입이 강하게 위의 코드에서 설정을 지정하는 것이 필요하다, (INT 사용하여 포인터 p 형과 일치 할 필요 * ) 강력한 회전,

무료 기능은 메모리를 해제합니다. 그것의 매개 변수는 포인터를위한 공간을 확보해야합니다. 주 : 메모리를 확보하기 위해, 또는 공간의 낭비가 발생할 수 있는지 확인하십시오.

 

다음은 동적으로 할당 된 메모리 C ++ 스타일의 코드입니다 :

1 #INCLUDE <iostream>
 2  사용  스페이스 성병;
3  INT 의 main () {
 4      INT *의 P1 = 새로운  INT ;
5      * P1 = 4 ;
6      COUT << * P1 << ENDL;
7      
8      INT의 *를 p = 새로운  INT [ 3 ];
9      , p는 [ 0 ] = 1 ;
10      (P)는 [ 1 ] = 2 ;
11      , p는 [ 2 ] = 3 ;
(12)     P는 [ 3 ] = 4 ;
13      COUT << P [ 0 ] << '  ' << (P) [ 1 ] << '  ' << (P) [ 2 ] << '  ' << (P) [ 3 ] << ENDL;
14      
15      삭제 P1;
16      삭제 [] 쪽;
17      반환  0 ;
18 }

 

 C ++ 헤더 파일의 동적 메모리 할당 가져올해야하고,이 기능의 행사를위한 새로운 두 개의 키워드를 삭제하지 마십시오, 위의 코드가 일정하고 배열의 차이를 강조하기 위해, 가장 큰 차이는 메모리를 확보 할 수있는 방법입니다, C ++은 메모리를 할당 그것은 더 이상 필요 데이터 유형의 크기를 계산하기에 편리 것으로, 상대적으로 말하기는 sizeof 기능을 사용할 필요가 없습니다 즉,없는 장점이있다.

 

음, 오늘, C 언어와 C ++에서 각각, 우리는 약간의 도움이 갖고 싶어 말했다 사이에 동적으로 할당 된 메모리의 방법입니다.

잘못을 지적 해주십시오 경우에는 수정해야합니다.

추천

출처www.cnblogs.com/whtmomo/p/11334494.html