배열의 크기를 동적으로 찾으려고 시도합니다. main()에서 크기를 가져 오는 것은 정상적으로 작동하지만 GetSize 함수에 전달할 때는 그렇지 않습니다.문자열 배열의 C++ sizeof가 함수에 전달 될 때 예상 결과를 반환하지 않음
#include <iostream>
#include <string>
using namespace std;
string GetSize(string array[]);
int main()
{
string array[] = {"A", "B", "C", "D", "E"};
int ARRAY_SIZE = (sizeof(array)/sizeof(array[0]));
cout << "Total Size: " << sizeof(array) << endl;
cout << "Single Element Size: " << sizeof(array[0]) << endl;
// Pass the array as an argument to GetSize()
GetSize(array);
}
string GetSize(string array[])
{
// Get size of the array
int ARRAY_SIZE = (sizeof(array)/sizeof(array[0]));
cout << "Size of array is: " << sizeof(array) << endl;
cout << "Size of 1st element is: " << sizeof(array[0]);
}
출력
// Total Size: 160
// Single Element Size: 32
// Size of array is: 8
// Size of 1st element is: 32
내가 단서가 없다 왜 총 크기와 배열의 크기 사이의 차이.
REPL 샌드 박스 :https://repl.it/@phreelyfe/Size-Of-Error
확실히이 하나의 약간의 중복이의
string[5]
의 크기입니다. – drescherjm나는 한시간 이상 stackoverflow를 검색했습니다. – 4UmNinja
C++ (C 유산)에서 배열은 섬세한 비누 방울이 며 모자 한 방울로 포인터가됩니다. C++에서는 대신'std :: vector'를 사용하고 배열의 문제를 피하십시오. – Eljay