C++에서 동적 할당 배열의 크기를 얻는 방법은 무엇입니까?C++에서 int의 동적 할당 배열의 크기를 얻는 방법
예 : (그것은 INT의 크기의 4 32 비트 = 8 * 4로 /이 항상 줄 것이다)
bool tabSum(int* t, int& p, int& np){
cout<<"\n\n";
cout<<sizeof(*t)<<endl;
}
C++에서 동적 할당 배열의 크기를 얻는 방법은 무엇입니까?C++에서 int의 동적 할당 배열의 크기를 얻는 방법
예 : (그것은 INT의 크기의 4 32 비트 = 8 * 4로 /이 항상 줄 것이다)
bool tabSum(int* t, int& p, int& np){
cout<<"\n\n";
cout<<sizeof(*t)<<endl;
}
불가능합니다.
인수로 포인터를 사용하고 배열로 예상하는 모든 유용한 함수는 항상 요소 수를 나타내는 두 번째 매개 변수를 취합니다.
STL에서 사용되는 또 다른 접근법은 배열의 마지막 항목보다 한 단계 앞선 포인터를 끝 경계로 사용하는 것입니다. STL 반복자는 begin() 및 end() 메서드를 사용하여이 접근 방식을 추상화합니다. 이 방법을 사용하면 size_t와 같은 별도의 숫자 데이터 유형을 사용할 필요가 없습니다.
이 룰에 주목할만한 예외는 NULL 종료 문자열을 예상하는 문자열 기능입니다. 그러나 특정 접근법은 보안 문제가 발생하기 쉽고 std :: string 클래스를 선호하는 접근 방식으로 사용합니다.
이 작업을 수행 할 수 없습니다. 이미 다른 용도로 언급했듯이 길이를 여분의 변수로 유지하거나 malloc/realloc 클래스를 직접 작성하여 도움을 줄 수 있습니다.
할당 할 때 크기가 알려지지 않았습니까? – 0605002
@FlopCoder 동적 할당은 런타임에 이미 알고 있으므로 여기에 나와 있습니다. –
짐작할 수 있지만 크기를 제공해야합니다! _unspecified_ 메모리를 할당 할 수 있습니까? – 0605002