(C+;+;)这个错误是关于什么的:赋值的左操作数需要左值 我用C++中的有序链表制作一个哈希表来存储名字列表。

(C+;+;)这个错误是关于什么的:赋值的左操作数需要左值 我用C++中的有序链表制作一个哈希表来存储名字列表。,c++,compiler-errors,linked-list,hashtable,C++,Compiler Errors,Linked List,Hashtable,我的createhashTable函数不断出现编译错误。我试图创建一个空白表,其中包含0->bucketsize中的虚拟节点 我的代码如下所示: class listNode{ public: string firstName, lastName; listNode* next; listNode(){ firstName = "dummyfirst"; lastName = "dummyla

我的createhashTable函数不断出现编译错误。我试图创建一个空白表,其中包含0->bucketsize中的虚拟节点 我的代码如下所示:

class listNode{
    public:
    string firstName, lastName;
    listNode* next;
    
    listNode(){
        firstName = "dummyfirst";
        lastName = "dummylast";
        next = NULL;
    }

    listNode(string firstName, string lastName){
        this->firstName = firstName;
        this->lastName = lastName;
        this->next = NULL;
    }

    void printNode(listNode* node, ofstream* outFile){
        if(node->next == 0) {
            *outFile << "\n";
        }   
        else{ 
            *outFile << "(" << node->firstName << "," << node->lastName << "," << node->next->firstName << ")  --> ";
        }
    }
        
    friend class hashTable;
}; //end of listNode class


class hashtable {
    public:
        char op;
        string firstName, lastName;
        int bucketSize;
        listNode *hashArr;
        

        void createHashTable(int bucketSize){
            /////////////////
            int i = 0;
        //  hashArr = new listNode[bucketSize];

            while(i < bucketSize){
                &hashArr[i] = new listNode[bucketSize];

                i++;
            }
        }
如何正确实现此功能。
^正如Werner Henze所说,
&hashArr[i]
不能修改,因为它是一个右值。在这种情况下,这样的表达也没有意义。您正在尝试在堆上创建具有指定大小的数组。删除前缀的地址,即
hashArr[i]=newlistnode[bucketSize]

您希望hashArr[i]做什么?这是一个对象的地址。您不能更改对象的地址。只能更改对象的(值)。你想要实现什么?可能
hashArr
必须有另一种类型?请提取并提供此类问题的答案。甚至在这之前,只要在网上搜索一下错误信息就可以开始你的研究了。作为这里的一个新用户,也可以阅读。
main.cpp: In member function ‘void hashtable::createHashTable(int)’:
main.cpp:51:42: error: lvalue required as left operand of assignment
     &hashArr[i] = new listNode[bucketSize];