下面是代码: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