c++ - 指向共享对象的指针数组

标签 c++ visual-c++ memory-management memory-leaks

我有一个数组列表,其中包含指向现有静态对象的指针数组。不知何故,它设法泄漏了大量内存。

Fruit fruits[20];
Fruit **list;

void addFruites()
{
    list = new Fruit*[10];
    for(int i=0; i<10; i++)
    {
        list[i] = &fruits[i];
    }
}

到目前为止,一切似乎都正常。但是每当我想删除(列表)时:

 delete []list;

它似乎崩溃了。

帮助!!

最佳答案

我想你可能想做

list = new Fruit * [10];

如果 list 应该是一个 Fruit 指针数组。以下内容:

list = new Fruit[10];

正在使用默认构造函数为 10 个新的 Fruit 对象分配内存,而不是为 10 个指向 Fruit 对象的指针。

关于c++ - 指向共享对象的指针数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5508183/

相关文章:

c++ - operator new[] 为什么要为数组的大小分配内存?

c++ - 我的汇编函数推送数据两次

c++ - 在 VC++ 中编译头文件时遇到问题

c# - 为什么 GC.GetTotalMemory 返回不同的结果?

c - 在c中连接字符串的最有效方法

iOS:Instruments 显示 imageio_png_data 的大小比其实际图像大小大 300 倍

c++ - 构造一个 void 类型?

c++ - 为什么这是错误 : static_cast<unsigned*>(&i)

c++ - std::string header 仅在 Visual Studio 中吗?

c++ - 如何在 Visual C++ 中将字节数组转换为十六进制字符串?