如果我在循环中有以下几行:
Type *unite = new Type(newSize);
或
double *array= new double[anySize];
如果我在内存中没有删除运算符,那么内存的行为是什么?它会不断地在不同的内存位置分配对象和数组,从而导致内存泄漏?
最佳答案
是的,会的。这:
for (int i = 0; i < 10; ++i)
{
Type* unite = new Type(newSize);
}
将分配 10 个类型为 Type
的对象,它们都位于不同的位置。它们都不会被释放,最后你将没有指向它们的指针。您将泄漏 10 * sizeof(Type)
字节的内存。
同样,这个
for (int i = 0; i < 10; ++i)
{
double *array= new double[anySize];
}
将出于同样的原因泄漏 10 * anySize * sizeof(double)
字节的内存。
关于C++指针简单题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2745425/