< new와 delete >
- new 연산자를 사용할 경우 명시적 형변환을 할 필요가 없다.
| int *p=(int *) malloc(sizeof(int)); // 4바이트 할당 int *p=(int *) malloc(sizeof(int)*3); // 12바이트(int형 3개를 갖는 배열) 할당 | 
| int *p=new int; // 4바이트 할당 int *p=new int[3]; // 12바이트(int형 3개를 갖는 배열) 할당 | 
- 메모리 할당과 동시에 초기화가 가능하다(단, 배열 형태로 할당받을 경우에는 초기화가 여전히 불가능).
| int *p=new int(100); // int형 변수 하나를 할당받으면서 값을 '100'으로 초기화. | 
- new를 사용하여 메모리를 할당한 경우에는 delete 연산자를 사용해서 메모리 해제를 해야한다.
| delete p; delete [] p; | 
--------------------------------------------------------------------------------------------------------------------------
| ex 10. (int형 변수 하나의 동적 할당 및 초기화) #include <iostream> 
 int main(void){ 
    cout<<"포인터 변수의 주소 : "<<&p<<endl; 
 delete p; 
    return 0; | 
 
   
| ex 11. int형 변수 5개를 동적으로 할당받고 각각 해당 원소의 인덱스로 값 채우기. (배열의 동적 할당) #include <iostream> 
 int main(void){ 
    for(int i=0; i<5; i++) 
    for(int i=0; i<5; i++) 
 delete [] p; 
    return 0; | 

| ex 12. (2차원 배열의 동적 할당) #include <iostream> 
 int main(void){ 
    for(i=0; i<4; i++) 
    for(i=0; i<4; i++){ 
    for(i=0; i<4; i++){ 
    for(i=0; i<4; i++) 
    return 0; | 
 
   
| ex 12_1. (2차원 배열의 동적 할당) - delete 한 번만 해주도록. #include <iostream> 
 int main(void){ 
    for(int i=0; i<4; i++){ 
    for(int i=0; i<4; i++){ 
 delete [] p; // 한 번만 delete(해제)해주면 됨. 
    return 0; | 

'Computer Languages > C | C++' 카테고리의 다른 글
| string을 char로 취급하기 (0) | 2010.10.21 | 
|---|---|
| [펌]private, proteted, public 의 차이 (3) | 2010.10.12 | 
| 포인터 개념 (0) | 2010.10.11 | 
| 3x3 행렬의 곱 (0) | 2010.10.08 | 
| 링크드리스트(노드추가/삭제) (0) | 2010.10.08 |