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 ++에서 각각, 우리는 약간의 도움이 갖고 싶어 말했다 사이에 동적으로 할당 된 메모리의 방법입니다.
잘못을 지적 해주십시오 경우에는 수정해야합니다.