gpt4 book ai didi

c - C 中的指针和链表——程序的意外行为

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

我最近开始用 C 语言编程,并且已经在链表程序中工作了一段时间。现在,该程序是关于拥有一个配置文件,您可以在其中注册您观看的电影,然后将它们保存在 .txt 文件中。麻烦在于电影进入名单。当我尝试打印它时,字段将显示为空,就好像我没有正确分配指针一样,但事实是程序知道我在个人资料中堆叠了电影。我知道这是一个很难问的问题,任何帮助将不胜感激。我将在这里展示 Insertmovie 函数(我认为可能存在问题)和 moviecopy 函数(我测试了该函数,但它本身不起作用,尽管我怀疑我在那里做错了什么):

int stacknewmovie (movie* p, list* l){
if(!p || !l){
return 0;
}
node* n;
n=newnode();
if(!n){
return 0;
}
insertnodeinfo(n, p);
n->next=NULL;
if(l->first==NULL){
l->first=n;
return 1;
}else{
n->next=l->first;
l->first=n;
return 1;
}
}

这里是电影副本:

int moviecopy(movie* pel2,movie* pel1){
if(!pel1 || !pel2){
return NULL;
}else{
pel2=pel1;
return 1;
}
}

再次感谢您抽出宝贵时间。我不知道如何更好地展示我的问题,因为编译器甚至不会警告我任何事情。

node* insertnodeinfo(node* n, movie* p){
if(!p || !n){
return NULL;
}else{
moviecopy(n->info, p);
return n;
}
}

最佳答案

int stacknewmovie (movie* p, list* l){
if(!p || !l){
return 0;
}
node* n;
n=newnode();
if(!n){
return 0;
}
insertnodeinfo(n, p);
n->next=NULL;
if(l->first==NULL){
l->first=node; //problem here replace "node" by "n"??
return 1;
}else{
n->next=l->first;
l->first=n;
return 1;
}

正如我在评论中所做的那样,首先将“node”替换为“n”(我想您想写“n”而不是“node”)

关于c - C 中的指针和链表——程序的意外行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30349519/

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