【发布时间】:2017-10-29 05:56:07
【问题描述】:
我有一个int array。这个数组的大小不同是main 和toString 方法。
void toString(int arr[]){
int size = sizeof(arr)/sizeof(arr[0]);
cout<<"Size in toString "<<size<<endl;
cout<<"{";
for(int i=0; i<size; i++){
cout<<arr[i]<<", ";
}
cout<<"}"<<endl;
}
int main(){
int input_arr[] = {1, 2, 3, 4};
int size_in_main = sizeof(input_arr)/sizeof(input_arr[0]);
cout<<"Size in main "<<size_in_main<<endl;
toString(input_arr);
return 0;
}
输出:
Size in main 4
Size in toString 2
{1, 2, }
为什么打印不同的数组大小?
【问题讨论】:
-
另一个可能的重复:stackoverflow.com/a/968112/1632887
-
它的 C++,使用 std::array 或 std::vector!
-
@manni66 我在我的代码中使用
using namespace std;,所以我猜std::array不是必需的。 -
std::array != []。 en.cppreference.com/w/cpp/container/array