下面是代碼:memset的設定隨機值
#include <iostream>
#include <cstring>
int main()
{
int win[11];
std::memset(win, 1, sizeof(win));
for (int i = 0; i < 11; ++i)
std::cout << win[i] << ' ';
std::cout << std::endl;
return 0;
}
我認爲這是不符合邏輯的缺陷嗎?但不是打印一串1
,我得到了16843009
。
如果我將memset
更改爲std::memset(win, 0, sizeof(win))
。然後一切都如預期。勝利的內容全部爲零。
我在這裏錯過了什麼嗎?我正在g++ 4.7.3
上Ubuntu 13.04
。
對不起,這個重複的問題。
這是答案。由於
Why does "memset(arr, -1, sizeof(arr)/sizeof(int))" not clear an integer array to -1?
我可以將自己的問題標記爲重複嗎? – gongzhitaao
@DyP是的。我有不同的關鍵字,所以直到幾分鐘前我才發現它 – gongzhitaao
(該評論已自動創建,因爲我投票結束爲dup。) – dyp