簡體   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