第1个回答 2009-03-12
1.关于:“用new分配的这块内存是否分配之后就被清空?”
答案:没有。直到你为他赋值为止。
例如:
struct AA
{
int a;
};
void main()
{
AA *temp = new AA[3];
cout<<temp[0].a<<endl;
}
程序是可以执行的,但是输出值不确定的。
2.如果不是,如何清空这块内存?
结构我不知道初始化清空的方法。
如果是数组可以用以下的方法清空:
void main()
{
int a[4][5] = {{3,4}};
for(int i=0; i<4;i++)
{
cout<<"---------------"<<endl;
for(int j=0; j<5; j++)
cout<<a[i][j]<<endl;
}
}
从输出结果就可以看出,除了a[0][0]和a[0][1]数组的其他元素都被赋值为了0;
如果 int a[4][5] = {0};则可以将数组所有成员都赋值为0.
第2个回答 2009-03-12
memset(AA,'0', MM);
分配大小为MM,那memset里大小直接MM,不用sizeof
还有'0'是一个字符常量,不是数值0,不知道你本来就是要初始为字符0,还是数值0?
第3个回答 2009-03-12
标准-----memset(AA,0,sizeof(aa)*MM/sizeof(char))本回答被提问者采纳
第4个回答 2009-03-12
memset是全部弄为0 东西还是有只是为0了