繁体   English   中英

如何分配“对象数组”的指针(C ++)

[英]How to assign pointer of an “array of object” (C++)

我是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],您将其用作指针,而不是现在声明的指针数组。 错误源于试图覆盖您将其声明为数组的事实-即使在技术上兼容,也无法在运行时通过编程方式更改类型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM