Mar*_*aux 2 c++ arrays memory-management
如果我有一个像这样创建的数组:
MyType *array = new MyType[10];
Run Code Online (Sandbox Code Playgroud)
我想要覆盖其中一个元素,我必须delete首先使用这样的旧元素:
delete &array[5];
array[5] = *(new MyType());
Run Code Online (Sandbox Code Playgroud)
或者这是完全错误的,我是否必须使用像"指针指针"这样的东西来解决这个问题?如果是这样,请多好....
谢谢
Tho*_*mas 11
它是一组值,而不是指针.所以你就是这么做的
array[5] = MyType();
Run Code Online (Sandbox Code Playgroud)
这需要MyType支持赋值运算符.
顺便说一句,在C++中很少需要这样的手动数组分配.破除与new和delete和使用std::vector,而不是:
std::vector<MyType> array(10);
array[5] = MyType();
Run Code Online (Sandbox Code Playgroud)
注意,没有必要删除任何东西.