上一篇,我有以下代码.
double* a[100];
for (int i = 0; i < 100; i++) {
// Initialize.
a[i] = 0;
}
Run Code Online (Sandbox Code Playgroud)
初始化数组a为0 的目的是,当我迭代删除元素时a,一切都会正常工作,即使没有为元素分配的内存a.
for (int i = 0; i < 100; i++) {
// Fine.
delete a[i];
}
Run Code Online (Sandbox Code Playgroud)
现在,我想利用auto_ptr,以避免手动调用删除.
std::auto_ptr<double> a[100];
for (int i = 0; i < 100; i++) {
// Initialize. Is there any need for me to do so still?
a[i] = std::auto_ptr<double>(0);
}
Run Code Online (Sandbox Code Playgroud)
我想知道,是否需要初始化auto_ptr以保存空指针?我的感觉是否定的.我只是想确认这一点,以便没有任何陷阱.
c++ ×1