如果我在循环中包含以下几行:
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++ - C++指针简单问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2745425/