Code phần linked list bị lỗi không thể chạy

Mình đang học C tới phần link list. Nhưng khi viet code xong (trên Dev C++) thì nó không chạy, mọi người có thể giúp mình giải quyết với, mọi người copy code chạy thử rồi chỉnh giúp mình với

#include<stdio.h>
#include<stdlib.h>
#include<windows.h>

struct node{
	int data;
	struct node *pNext;
};
typedef struct node node;

struct list{
	node *pHead;
	node *pTail;
};
typedef struct list list;

int CreateList (list &l){
	l.pHead=NULL;
	l.pTail=NULL;
}

node *CreateNode(int x){
	node *p=(node *)malloc(sizeof(node));
	p->data=x;
	p->pNext=NULL;
	return p;
}

int AddNodeEnd(list &l,node *p){
	if(l.pHead=NULL){
		l.pHead=l.pTail=p;
	}
	else{
		l.pTail->pNext=p;
		l.pTail=p;
	}
}

int OutPut(list l){
	for(node *k=l.pHead;k!=NULL;k=k->pNext){
		printf("%d",k->data);
	}
}

int main(void){
	int x;
	list l;
	CreateList(l);
	printf("\t\tCreate link list\n");
	for(;;){
		printf("Input data of new node:");
		scanf("%d",&x);
		if(x!=0){
			node *p=CreateNode(x);
		    AddNodeEnd(l,p);
		}
		else{
			break;
		}
	}
	printf("Link list:  ");
	OutPut(l);
	
	
	
	return 0;
}

Không chạy? Lỗi?

Cái mình cần là thông báo lỗi ấy.

3 Likes

nếu có thông báo lỗi thì dễ sửa rồi, nhưng, vấn đề là nó không chạy mới khó hiểu.
vì thế mình mới cần mọi người giúp và kiểm tra xem lỗi đoạn nào

Nghĩa là biên dịch được nhưng không cho nhập? Hay là nhập rồi mới treo? Đại loại vậy.

Quy củ thì phải có phiên bản IDE và các bước thực hiện luôn :smiley: chứ ko phải mỗi cái screen.

3 Likes

image
image

Bug nè bạn. :slight_smile:

Trong C không có truyền bằng tham chiếu nha. (C++ thui).

Với lại bạn chưa free được các node đã cấp phát.

2 Likes

Mình có 2 bài hướng dẫn về danh sách kết có hướng dẫn rất chi tiết, bạn có thể tham khảo:

Danh sách liên kết đơn

Danh sách liên kết đôi

2 Likes

cảm ơn mọi người đã giúp đỡ

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?