C의 할당과 해제
malloc 함수를 이용한 동적할당 방식
> 자료형 포인터 변수명 = (자료형 포인터) malloc(sizeof(자료형)*갯수);
free 함수를 이용한 동적 할당된 메모리 해제 방식
> free(동적 할당된 메모리 주소)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | #include <stdio.h> void main(){ int count, i; printf ( "사용할 숫자 배열의 길이:" ); scanf ( "%d" , &count); int *pNumList = ( int *) malloc ( sizeof ( int )*count); for (i=0; i<count; i++){ printf ( "%d번째 정수:" , i+1); scanf ( "%d" , pNumList[i]); } printf ( "\n\n입력한 정수들:\n" ); for (i=0; i<count; i++){ printf ( "%d " , pNumList[i]); } printf ( "\n" ); free (pNumList); // 동적 할당한 메모리 사용이 끝나면 // 꼭 free 함수를 이용하여 할당한 영역을 회수하는 것이 매우 중요. // 이는 프로그램을 종료해도 메모리의 할당한 영역만큼을 재부팅 전까지 사용 할 수 없기 때문. }
|
C++의 메모리 할당과 해제
new 와 delete 키워드를 사용한다.
할당 방식
자료형 *변수명 = new 자료형;
자료형 *변수명 = new 자료형[갯 수];
할당 실패시 new는 0을 리턴한다고 한다.
해제 방식
delete 변수명;
delete[] 변수명;
delete 키워드는 NULL 포인터에 사용되어도 어떤 일이 발생하거나 문제가 되지 않는다고 한다.
320x100
'프로그래밍 > C,C++' 카테고리의 다른 글
[C]문자열관련 함수, 메모리 관련 함수, 파일 관련 함수 예제 (0) | 2015.01.20 |
---|---|
배열 Array 과 배열을 이용한 문자열 (0) | 2015.01.20 |
전처리기 preprocessor, 기억류 storage class (0) | 2015.01.20 |
C++ Template 샘플 (0) | 2014.09.12 |
[C++] struct, class (0) | 2014.09.11 |
댓글