首页 > 解决方案 > 为什么“新”只创建一个对象而不是一组对象?

问题描述

我目前正在尝试为我的国际象棋引擎制作一个转置表,并且正在使用一个具有结构对象的动态分配数组成员的类。

class TranspositionTable {
private:
    TranspositionEntry* data_;
public:
    TranspositionTable() {
        data_ = new TranspositionEntry[5]; //5 is an example but i'm actually using a number over 16 million --
                                           // that's why I need it dynamically allocated
    }
    ~TranspositionTable() {
        delete[] data_;
    }
}

但是,当构造对象时,我检查了 Visual Studio 调试器,它只显示 data_ 成员包含单个结构对象,而不是它的数组。我正在使用'new'关键字并尝试更改它是否是指针等,但它仍然不起作用。谁能解释发生了什么?

标签: c++new-operator

解决方案


我才意识到问题所在。数组 WAS 实际被分配。但是由于我在 Visual Studio 调试器中,并且该值是一个指针,因此我实际上只看到了第一个值。其他人的 HTH!我的错!


推荐阅读