C++ 에서 멤버 변수로 넘긴 배열과 동적할당은 포인터로 받는다.
포인터를 sizeof() 하려고 하면, 포인터의 크기( 4byte or 8byte)가 나온다.
배열 크기를 구하는 방법은 _msize () 함수를 이용하는 것.
#include <malloc.h>
int n = 10;
int* arr = new int[n](); // ()를 붙여주면 0으로 초기화 됨!
cout << _msize(arr) << "\n"; // 40
cout << _msize(arr) / sizeof(int) << "\n"; // 10
cout << _msize(arr) / sizeof(arr[0]) << "\n"; // 10
delete[] arr;
'c, c++ 리마인드' 카테고리의 다른 글
[c++] 참조자 (1) | 2024.06.16 |
---|---|
포인터 연산 (0) | 2024.05.22 |
[c++] typeid, is_base_of (2) | 2024.02.10 |
[c++] #define & typedef (0) | 2023.12.13 |
C++ friend 함수 (0) | 2023.10.31 |