【发布时间】:2023-01-11 02:19:37
【问题描述】:
我有一个问题,我似乎找不到解决方案。我试图做一个简单的程序来创建一个列表并在 C 中打印它,但是当我尝试运行它时它循环打印列表的第一个值。这是如果有人可以帮助请编程:
我尝试添加括号等但没有用。
#include <stdio.h>
#include <stdlib.h>
typedef struct nodo{
int dato;
struct nodo *next;
}nodo_t;
typedef nodo_t *Ptr_nodo;
int main(){
Ptr_nodo testa,temp;
int q;
temp=NULL;
testa=NULL;
temp=malloc(sizeof(nodo_t));
if(temp){
q=0;
while(q!=-1){
printf("Inserire valore: ");
scanf("%d",&q);
if(q!=-1){
temp->dato=q;
temp->next=testa;
testa=temp;
}
}
while(testa!=NULL){
printf("%d",testa->dato);
if(testa->next!=NULL)
printf(" -> ");
else
printf(" -|");
testa=testa->next;
}
}
else
printf("Errore allocazione memoria"),
free(temp);
return 0;
}
【问题讨论】:
-
嘿!欢迎到这里。对于此类问题,我们希望提问者使用调试器单步调试他们的代码。无论如何,学习如何使用调试器将使您的编程生活变得更加轻松,甚至有一个密切的理由“这个问题没有调试尝试/调试器输出”。
-
您的代码只调用一次
malloc()。
标签: c list pointers while-loop printing