C++代码返回值3221226356


#include <iostream>
#include <cstring>
using namespace std;
typedef int ElemType;
 
typedef struct LNode {
    ElemType sn;
    ElemType sc;
    string name;
    struct LNode *next;
} *LinkList, LNode;
 
void InitList(LinkList &L);
LinkList List_HeadInsert(LinkList &L);
void InsertLink(LinkList &L1, LinkList &L2);
void display(LinkList L);
int main() {
    LinkList L1;
    InitList(L1);
    List_HeadInsert(L1);
    display(L1);
}
 
void InitList(LinkList &L) {
    L = (LNode *)malloc(sizeof(LNode));
    L->next = NULL;
}
 
LinkList List_HeadInsert(LinkList &L) {
    ElemType tsn, tsc;
    string tname;
    L = (LinkList)malloc(sizeof(LNode));
    LNode *s, *r = L;
    cin >> tsn >> tname >> tsc;
    while (true) {
        s = (LinkList)malloc(sizeof(LNode));
        s->name = tname;
        s->sc = tsc;
        s->sn = tsn;
        r->next = s;
        r = s;
        cin >> tsn >> tname >> tsc ;
    }
    r->next = NULL;
    return L;
}
 
void InsertLink(LinkList &L1, LinkList &L2) {
    L2->next = L1->next;
    L1->next = L2;
}
 
void display(LinkList L) {
    for (LNode *p = L -> next; p != NULL; p = p -> next)
        cout << p -> sn << " " << p->name << " " << p->sc << endl;
    cout << endl;
}

int main() {
    LinkList L1;
    InitList(L1);
    List_HeadInsert(L1);
    display(L1);
}

这里没有写 return 0;
所以返回值是随机的,这是正常的

1.头文件对应c语言版本<string.h>,此处错误引用头文件,string是C++类,应该改为#include
2.36行代码死循环,无退出条件。
3.使用C++,对类操作应该使用new delete。