表达式必须是可修改的左值(对于数组)

时间:2018-01-30 02:57:50

标签: c++ pointers

我有这个程序我正在研究,其中一部分是我正在制作的链接列表。我到目前为止,但在代码的这一点,它告诉我(在第3行到最后一行),inst必须是一个可修改的左值。我不确定我在这里做错了什么。

#include <iostream>

using namespace std;

struct node{
    float color[3];
    float v[2*3];
    node *next;
};

class TriangleList {
    private: node *head;
    private: node * tail;

public: 
    TriangleList() {
        head = NULL;
        tail = NULL;
    }

    void add(float vertices[], float colors[]) {
        node *inst = new node;
        inst->v = vertices;
    }
};

1 个答案:

答案 0 :(得分:0)

以下声明不正确,因为您无法执行inst->v = vertices,因为这样做是为了尝试更改v的基地址,请正确读取错误。

错误:将'float '赋值给'float [6]'* *

的类型不兼容
inst->v = vertices;

您可能想要执行以下操作

for(int i=0;i<len;i++) { /* len is the length of vertices */
       inst->v[i] = vertices[i];
}