【发布时间】:2015-09-21 10:38:19
【问题描述】:
我已经用值 1 初始化了整个数组,但输出显示了一些垃圾值。但是如果我使用 0 或 -1 代替 1,这个程序可以正常工作。所以对于可以使用 memset 初始化什么类型的值有一些限制。
int main(){
int a[100];
memset(a,1,sizeof(a));
cout<<a[5]<<endl;
return 0;
}
【问题讨论】:
-
是的,它适用于 -1 。你可以试试
-
你可能应该先弄清楚
sizeof(a)做了什么,然后你应该弄清楚memset()的第三个参数的类型是什么。这应该清除它。 PS。不要在 C++ 中这样做,这是不必要的,而且如您所见,错误。 -
如果你有一个现代编译器,你可能想试试
std::fill(std::begin(a), std::end(a), 1); -
你的代码不是C++,是C。如果你真的用C++编译器,不要写C代码。