如果我在循环中包含以下几行:

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/

10-10 18:28
查看更多