【发布时间】:2015-11-24 15:33:06
【问题描述】:
我正在尝试创建一个包含 5 个节点的链接列表并打印它们。我不知道为什么在打印链接列表时看不到结果,即使我没有收到错误并且我确信我的结构很好。我只看到空白屏幕。这是我的代码:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
typedef struct msg *M;
struct msg{
double id;
M next;
};
M queue;
void new_msg(double id);
void printList();
void main()
{
double r;
srand(0);
for(int i=0;i<5;i++){
r = rand() % 100;
new_msg(r);
}
printList(); // PRINT DOES NOT SHOW RESULTS :(
}
void printList()
{
M temp;
while (temp->next != NULL){
temp = temp->next;
printf("MSG ID:%6.3f \n", temp->id);
}
}
void new_msg(double id)
{
M m;
if(queue == NULL)
{
m = malloc(sizeof(struct msg));
}
else
{
m= queue;
queue = queue->next;
}
m->id = id;
m->next = NULL;
}
【问题讨论】:
-
void main()-->int main(void) -
哦,对了。谢谢你。但仍然没有显示结果:(
-
什么?那是评论,不是回答朋友!!
-
您应该尝试使用调试器。单步执行代码时会出现几个错误。
-
将指针隐藏在 typedef 后面的形式很糟糕。不要这样做。它让每个人都感到困惑,甚至可能是你。
标签: c linked-list printf singly-linked-list