0
我感到困惑下面的代碼不起作用:memset的()如預期
#include<iostream>
#include<cstring>
int main()
{
int arr[3][4];
memset(arr, 10, sizeof(arr));
for(int i = 0; i < 3; ++i)
{
for(int j = 0; j < 4; ++j)
std::cout<<arr[i][j]<<" ";
std::cout<<"\n";
}
return 0;
}
輸出:
168430090 168430090 168430090 168430090
168430090 168430090 168430090 168430090
168430090 168430090 168430090 168430090
我的預期運行上面的代碼將打印
10 10 10 10
10 10 10 10
10 10 10 10
有人可以解釋這種奇怪行爲的原因嗎?
* memset()無法按預期工作* - memset可正常工作。您需要提供適當的參數。如果你想要做什麼遠程執行你想要完成的任務,[std :: fill](http://en.cppreference.com/w/cpp/algorithm/fill) – PaulMcKenzie
'memset'函數不知道這是一個「int」數組,因此不知道如何給它們解碼爲10的正確模式。 –