Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

어떻게 delete[]가 C++에서 피연산자 배열의 크기를 "알"까요?

<시간/>

new 연산자는 힙 메모리에 변수를 넣는 동적 메모리 할당에 사용됩니다. Delete[] 연산자는 힙에서 해당 메모리를 할당 해제하는 데 사용됩니다. New 연산자는 메인 블록에 생성한 요소의 수를 저장하므로 delete[]가 해당 번호를 사용하여 해당 메모리를 할당 해제할 수 있습니다.

예시 코드

#include <iostream>
using namespace std;
int main() {
   int B = 4;
   int A = 5;
   int** a = new int*[B];
   for(int i = 0; i < B; ++i)
      a[i] = new int[A];
   for(int i = 0; i < B; ++i)
      for(int j = 0; j < A; ++j)
         a[i][j] = i;
   for(int i = 0; i < B; ++i)
      for(int j = 0; j < A; ++j)
         cout << a[i][j] << "\n";
   for(int i = 0; i < A; ++i)
      delete [] a[i];
      delete [] a;
   return 0;
}

출력

0
0
0
0
0
1
1
1
1
1
2
2
2
2
2
3
3
3
3
3