gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 07:36:48 26 4
gpt4 key购买 nike

我是 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com