C++ 打印链表返回随机符号
我已经实现了一个基本的链表,以便为一个更困难的任务做准备。如果不打印随机符号,我似乎无法打印节点的内容。C++ 打印链表返回随机符号,c++,linked-list,adt,singly-linked-list,C++,Linked List,Adt,Singly Linked List,我已经实现了一个基本的链表,以便为一个更困难的任务做准备。如果不打印随机符号,我似乎无法打印节点的内容。 我知道这意味着我正在访问坏内存,但我无法确定它发生在何处或如何发生。 有人能帮我修复这个错误吗 在linux上使用g++构建 头文件 #ifndef LLIST_H #define LLIST_H #include <string> using namespace std; struct node { int age; string name;
我知道这意味着我正在访问坏内存,但我无法确定它发生在何处或如何发生。
有人能帮我修复这个错误吗 在linux上使用g++构建 头文件
#ifndef LLIST_H
#define LLIST_H
#include <string>
using namespace std;
struct node
{
int age;
string name;
string hair;
int height;
node* next;
};
node loadNode(node a, string b);
class linkedlist
{
private:
node* head = NULL;
node* tail = NULL;
int size;
public:
linkedlist();
linkedlist(node* n[], int si);
int getSize();
void print();
void addNode(node add);
void del(string record);
node sort(node sortee);
void printList();
node * getHead();
};
#endif
@C.M.请让我知道这是否解决了问题
void linkedlist::addNode(node added)
{
node * temp = new node;
//add data members
temp-> age = added.age;
temp-> hair = added.hair;
temp-> name = added.name;
temp-> height = added.height;
//if the first element
if(size == 0)
{
head = temp;
tail = temp;
temp->next = NULL;
size++;
}
else
{
temp->next = head;
head = temp;
size++;
//time to exit!
temp = NULL;
delete pointer;
}
}
还更改了linkedlist Double L=linkedlist(lib,3);到
在main()文件中是否尝试使用调试器单步执行代码?是时候在调试器中启动程序,逐行执行,并检查所有变量和指针值是否按预期显示。
linkedlist::addNode
中的逻辑没有任何意义。你需要复习it@C.M.你能说得更具体些吗,哪一部分?或者是我按照你要求我为你做家庭作业的顺序来做的:-)你在addNode
中做的大部分事情都没有意义。分析并找出问题所在
#include "list.h"
#include <fstream>
#include <iostream>
using namespace std;
int main()
{
string k = "21,Ces Goose,brown,5";
string a = "25, SteveO, Brown, 6";
string b = "23, Jimmy , Brown, 5";
node d,f,c;
d = loadNode(d,k);
f = loadNode(f,a);
c = loadNode(c,b);
node lib[3] = {d,f,c};
linkedlist doublel = linkedlist(lib, 3);
doublel.print();
return 0;
}
6304000
@g���
void linkedlist::addNode(node added)
{
node * temp = new node;
//add data members
temp-> age = added.age;
temp-> hair = added.hair;
temp-> name = added.name;
temp-> height = added.height;
//if the first element
if(size == 0)
{
head = temp;
tail = temp;
temp->next = NULL;
size++;
}
else
{
temp->next = head;
head = temp;
size++;
//time to exit!
temp = NULL;
delete pointer;
}
}
linkedlist * doublel = new linkedlist(lib,3);
doublel->print();