【发布时间】:2020-03-08 04:21:33
【问题描述】:
我想通过CreateLinkList(LinkList *L, int n)创建一个链接列表,但是printf的输出只有0 1。
它似乎停在CreateLinkList 的第 3 行。
我该如何解决?
void CreateLinkList(LinkList *L, int n)
{
srand(time(0));
printf("1\n");
*L = (Node*)malloc(sizeof(Node)); \\ it seems to stop here
printf("2\n");
Node *flag = *L;
printf("3\n");
for (int i=0; i<n; i++)
{
Node *newNode = (Node*)malloc(sizeof(Node));
newNode->data = rand() %100+1;
flag->next = newNode;
flag = newNode;
}
printf("4\n");
flag->next = NULL;
printf("5\n");
}
int main()
{
LinkList *p;
printf("0");
CreateLinkList(p, 10);
return 0;
}
LinkList 和 Node 被定义为:
typedef struct
{
int data;
struct Node *next;
} Node;
typedef Node *LinkList;
【问题讨论】:
-
我猜您正试图通过将指针传递给
LinkList来模拟传递引用。然后你需要将p定义为一个non指针变量,并使用address-of操作符&得到一个指向它的指针。
标签: c struct linked-list typedef singly-linked-list