【发布时间】:2011-07-25 18:20:27
【问题描述】:
就在下面的代码中,我需要用 new 为 floatArray 分配内存还是复制函数会为我分配内存?
以这种方式将常量向量复制到数组也可以吗?为什么?
vector<float> floatVector;
//filled floatVector here
float *floatArray = new float[floatVector.size()];
copy(floatVector.begin(),floatVector.end(),floatArray);
delete[] floatArray;
【问题讨论】:
-
你只是出于好奇才问的,不是吗?因为
&floatVector[0]的行为就像你的floatArray。 -
当然可以,但为什么呢?
-
@honk。我实际上在某个地方发生了内存泄漏,我认为这可能是它,但我猜错了:(我也没有在我的项目中进行删除,而是将 floatArray 传递给了一个实例变量。
-
如果你想找到你的内存泄漏(和你使用的 linux)在调试模式下检查 valgrind。它会告诉你问题所在。
标签: c++ memory-management stl deep-copy