c++ - 如何分配 "array of object"的指针 (C++)

标签 c++ arrays object dynamic resize

我是 C++ 的初学者,对动态数组感到困惑。我在这个网站上找到了一种方法,但我似乎无法让它适用于对象中的“对象数组”。当我读取 Rec 变量时它总是中断。

这是类定义:

class AlcXIO {
private:
    AlcX_IO_Record* Rec[1];
    int _Count;
public: 
    int count();
    void Init(CL_DisplayWindow window);
    void AddInput(int IO_ID);
    AlcX_IO_Record* GetRec(int RecID);
    void on_input_down(const CL_InputEvent &key, const CL_InputState &state);
    void on_input_up(const CL_InputEvent &key, const CL_InputState &state);
};

AddInput() 函数:

void AlcXIO::AddInput(int IO_ID) {
    size_t newSize = this->_Count +1;
    AlcX_IO_Record* newArr = new AlcX_IO_Record[newSize];

    memcpy( newArr, Rec, _Count * sizeof(AlcX_IO_Record) );

    _Count = newSize;
    delete [] Rec;
    Rec[0] = newArr;
}

我知道我可能错了:Rec[0] = newArr

但是将它更改为 Rec = newArr 会给我一个错误:“表达式必须是一个可修改的左值”

欢迎任何解决方案,谢谢。

最佳答案

从声明中删除 [1],您将其用作指针,而不是现在声明的指针数组。该错误源于试图覆盖您将其声明为数组的事实 - 即使在技术上兼容,也无法在运行时以编程方式更改类型。

关于c++ - 如何分配 "array of object"的指针 (C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16635331/

相关文章:

php - 在两个多维数组中查找和定位多个值

javascript - 出现 AngularJS Ui-grid 错误

c++ - 读取文件以构造具有多种成员类型

c++ - C++中的类型和名称有什么区别?

c++ - Qt Visual Studio 2008插件问题

python - 在python中对数组列表进行分类

php 是可变的数组或对象

Python通过ref访问一个对象/需要打标签

javascript - 我如何在 Javascript 中声明类?

java - 将具有 32 位无符号整数的哈希函数从 c++/Qt 迁移到 java