C++指针简单题

标签 c++ memory pointers memory-leaks

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

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/

相关文章:

c++ - 使用引用的高效交换?

c++ - 带模板的函数指针

jquery - 如何避免由于太多ajax调用而导致浏览器出现内存不足错误

c - C中的指针。通过函数更改列表指针的开头

C char 数组和指针 - 归并排序的合并

c - 关于C中数组名和数组地址

c++ - 我可以使用 Visual Studio 2015 创建 Windows Phone 8 应用程序吗?

C++ 长整型

iphone - iPhone “Device”内存泄漏

c++ - 是否将索引括号用于指针取消引用它?