0

有没有一种优雅的方式来升级到使用 boost 的 scoped_ptr 或 scoped_array 截断的以下代码?

MyClass** dataPtr = NULL;
dataPtr = new MyClass*[num];
memset(dataPtr, 0, sizeof(MyClass*));
allocateData(dataPtr); // allocates objects under all the pointers

// have fun with the data objects

// now I'm bored and want to get rid of them
for(uint i = 0; i < num; ++i)
  delete dataPtr[i];
delete[] dataPtr;
4

1 回答 1

0

我现在这样做了:

boost::scoped_array<MyClass*> dataPtr(new MyClass*[num]);
memset(dataPtr.get(), 0, num * sizeof(MyClass*));
allocateData(dataPtr.get());

似乎工作正常。

于 2014-07-18T09:56:35.677 回答