gpt4 book ai didi

C++ 在单链表中插入值时出错 (E0137)

转载 作者:行者123 更新时间:2023-11-30 03:17:41 25 4
gpt4 key购买 nike

<分区>

我创建了一个单向链表,它运行得很好,直到我将我的“基本”数据结构从单个 int 值更改为各种变数。

错误发生在 insertAtEnd 函数中,当我尝试存储它从临时节点上的参数获取的数据时。

temp->nome = n;
temp->morada = m;
temp->telefone = t;
temp->idade = i;

int 值显示没有错误,但 char[] 值显示错误“E0137 - 表达式必须是可修改的左值”。

List.h

struct node
{
char nome[20];
char morada[30];
char telefone[9];
Int idade;
node *next;
};

class LinkedList
{
private:
node *head;
node *tail;
public:
LinkedList();
~LinkedList();
void insertAtEnd(char n[20], char m[30], char t[9], int i);
void insertAtStart(char n[20], char m[30], char t[9], int i);
void display(void);
void deleteFirst(void);
void deleteLast(void);
void deleteAtPosition(int pos);
};

List.cpp

(...)
LinkedList::LinkedList()
{
head = NULL;
tail = NULL;
}
void LinkedList::insertAtEnd(char n[20], char m[30], char t[9], int i)
{
node *temp = new node;
temp->nome = n;
temp->morada = m;
temp->telefone = t;
temp->idade = i;
temp->next = NULL;
if (head == NULL)
{
head = temp;
tail = temp;
temp = NULL;
}
else
{
tail->next = temp;
tail = temp;
}
}
(...)

Main.cpp

(...)
LinkedList lista;
char nome[20];
char morada[30];
char telefone[9];
int idade;
(...)
switch (op) {
case 1:
cout << "Inserir nome: ";
cin >> nome;
cout << "Inserir morada: ";
cin >> morada;
cout << "Inserir telefone: ";
cin >> telefone;
cout << "Inserir idade: ";
cin >> idade;
lista.insertAtEnd(nome, morada, telefone, idade);
break;
(...)

这些是我认为相关的项目中的一些代码块,我几乎可以肯定上面没有任何其他内容与此问题有关,但如果您确实这么认为,请发表评论并我会编辑它。

提前致谢。

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