今天在刷题的时候想使用复习一下动态数组的使用,就建了一个,结果运行的时候出了一些问题,就是那个貌似数组没有被初始化,所以我就测试了一下,代码如下:
int main(){
int n = 10; int *degree1 = new int[n];
memset(degree1,0,sizeof(degree1));
for(int i =0;i<n;i++) cout<<degree1[i]<<'\t';
cout<<endl;
int *degree2 = new int[n];
memset(degree2,0,n*4);
for(int i =0;i<n;i++) cout<<degree2[i]<<'\t';
int *degree3 = new int[n];
memset(degree3,0,sizeof(degree3)*n);
for(int i =0;i<n;i++) cout<<degree3[i]<<'\t';
system("pause");
}
这个两个函数输出的结果是degree1只有第一个被初始化,degree2,3全部被初始化,究其原因,这个和sizeof函数有关,degree是一个指针