我知道new int()
和new int(10)
之间的区别。在第一种情况下分配0,在第二种情况下分配给新创建的int。但是什么是new int {}
。我们使用{}进行数组初始化,如new a[]{4,5,6}
。但是对于单变量初始化时使用大括号是什么意思?C++中新int()和新int {}之间的区别
/* Combined usage and initialized to 0*/
int *ptr2 = new int();
cout<<"*ptr2 = "<<*ptr2<<endl;
/* Allocated memory can be initialized to specific value */
int*ptr3 = new int(5);
cout<<"*ptr3 = "<<*ptr3<<endl;
int* ptr5 = new int{500};
cout<<"*ptr5 = "<<*ptr5<<endl;
的可能的复制[具有或不具有初始化差花括号在C++ 11](https://stackoverflow.com/questions/21150067/initialization-difference-with-or-without -curly-braces-in-c11) – Tas
或者https://stackoverflow.com/questions/18222926/why-is-list-initialization-using-curly-braces-better-than-the-alternatives – Tas