반응형
우리는 C에서 메모리를 할당할 경우 malloc 함수를 통해 동적 메모리 할당을 한다.
그리고 c++에서는 메모리 할당하는 경우로 new를 사용하여 편리하게 메모리를 할당 할 수 있다.
malloc의 함수 사용 -> void *malloc(size_f size);
위의 형태가 원형인 함수로서 size에 주어진 만큼의 byte수를 갖는 메모리 공간을 동적으로 할당하여 메모리 주소를 포인터 방식으로 리턴 해주는 함수이다.
사용법은
int n= 갯수;
int* pA = (int*) malloc(sizeof(int)*n);
와 같이 쓰인다.
sizeof(int)가 입력됨으로써 4byte의 크기(자료형의 크기)를 지시해주고
malloc은 void*형으로 리턴값이 나오기 때문에 int*형으로 형변환을 해줌으로써 int*형 변수 pA에 주소값을 넘긴다.
이렇게 C에서 사용하던 malloc을 c++에서는 new 연산자로 사용한다.
int* pA = new int [갯수];
int* pArr = (int*) malloc(sizeof(int)*갯수);
int* pArr = new int[갯수];
메모리 할당을 했으므로 해제도 해야한다.
malloc이 free(pA); . free(pArr); 로 메모리 해제
new 는 delete pA;, delete []pArr; 로 메모리 해제 <delete 또한 함수가 아닌 연산자>
반응형
'IT개발 > c, c++' 카테고리의 다른 글
[c] 소켓 생성 기본 (0) | 2014.01.23 |
---|---|
[c] ASKII 코드 출력 (0) | 2014.01.23 |
Template 코드의 선언과 정의는 하나의 파일에 넣자! (0) | 2014.01.23 |
[c] IP Setting (0) | 2014.01.23 |
[c] File 입출력 (0) | 2014.01.23 |