C++指针简单的问题

dme*_*ssf 0 c++ memory pointers memory-leaks

如果我在循环中有以下行:

Type *unite = new Type(newSize); 
Run Code Online (Sandbox Code Playgroud)

要么

double *array= new double[anySize];
Run Code Online (Sandbox Code Playgroud)

如果我内部没有删除操作符,那么对内存的关注是什么?它会不断地在不同的内存位置分配对象和数组,从而导致内存泄漏?

Tyl*_*nry 12

是的,它会的.这个:

for (int i = 0; i < 10; ++i) 
{
  Type* unite = new Type(newSize);
}
Run Code Online (Sandbox Code Playgroud)

将分配10个类型的对象Type,所有对象都在不同的位置.它们都不会被释放,最后你将不会指向任何一个.你将泄漏10 * sizeof(Type)内存字节.

同样,这个

for (int i = 0; i < 10; ++i) 
{
  double *array= new double[anySize];
}
Run Code Online (Sandbox Code Playgroud)

将出于同样的原因泄漏10 * anySize * sizeof(double)内存字节.