【发布时间】:2013-10-20 02:43:03
【问题描述】:
代码如下:
#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))。然后一切都如预期的那样。 win的内容全为零。
我错过了什么吗?
我在Ubuntu 13.04 上使用g++ 4.7.3。
抱歉这个重复的问题。
这就是答案。谢谢
Why does "memset(arr, -1, sizeof(arr)/sizeof(int))" not clear an integer array to -1?
【问题讨论】:
-
我可以将自己的问题标记为重复吗?
-
@DyP 是的。我有不同的关键字,所以直到几分钟前我才找到它
-
(该评论已自动创建,因为我投票关闭为 dup。)
-
真的,“随机”吗?你是什么国家安全局?