가능한 중복 : 길이
그런 다음 배열의 길이를 찾으려면이 사용 :이 같은 동적 배열을 선언int *arr = new int[n]; //n is entered by user
How to find the sizeof(a pointer pointing to an array)
:
int len = sizeof(arr)/sizeof(int);
n
대신 len
을 1
으로 표시합니다. 왜 그래야만하지?
가능한 중복 : 길이
그런 다음 배열의 길이를 찾으려면이 사용 :이 같은 동적 배열을 선언int *arr = new int[n]; //n is entered by user
How to find the sizeof(a pointer pointing to an array)
:
int len = sizeof(arr)/sizeof(int);
n
대신 len
을 1
으로 표시합니다. 왜 그래야만하지?
arr
때문에 당신은 할당 된 배열 또는 더 나은 사용의 크기를 저장해야 포인터
하지만, 포인터이기 때문에 그것은 당신에게 pointer
의 크기를 제공하고, 당신은에서 실행중인 포인터의 크기가 int
의 크기와 같은 아키텍처.
Andrew가 맞습니다. n을 어딘가에 저장해야합니다 (사용 위치에 따라 다름). 또는 .NET을 사용하는 경우 Array 또는 List를 사용할 수 있습니다.
그냥 벡터를 사용하면 많은 시간을 절약 할 수 있습니다. – Caesar
'int * arr = new int [n];'이 (가) 포인터를 선언하고 있습니다. 'std :: vector arr;'은 동적 배열을 선언하고있다. –
동적 배열이 없습니다. 동적 배열의 첫 번째 요소에 대한 포인터 만 있습니다. –