30/09/2018, 23:29

Lỗi potential uninitiazed local pointer variable 'q' used!

{
#include<iostream>
using namespace std;
struct NODE
{
	int data;
	NODE *next;
};

struct LIST
{
	NODE *head;
	NODE *tail;
};

void Init(LIST &l)
{
	l.head = l.tail = NULL;
}

bool isEmpty(LIST l)
{
	if (l.head == NULL)
		return true;
	return false;
}

NODE* createNode(int data)
{
	NODE *p = new NODE;
	p->data = data;
	p->next = NULL;
	return p;
}
void addLast(LIST &l, int data)
{
	NODE *p =  createNode(data);
	if (isEmpty(l))
	{
		l.head = l.tail = p;
	}
	else
	{
		l.tail->next = p;
		l.tail = p;
	} 
	
}
void Input(LIST &l)
{
	int n;
	cout << "Ban muon nhap bao nhiu Node:";
	cin >> n;
	Init(l);
	for (int i = 0; i < n; i++)
	{
		int x;
		cout << "Nhap vao data:";
		cin >> x;
		NODE *p = createNode(x);
		addLast(l, x);	
	}
}
void Output(LIST l)
{
	for (NODE *p = l.head; p != NULL; p = p->next)
	{
		cout << p->data << " ";
	}
}
void insertInLinkedList(NODE **head, int data, int position)
{
	int k = 1;
	NODE *q, *p, *newNode;
	newNode = new NODE;
	if (!newNode)
	{
		cout << "memory error";
		return;
	}
	newNode->data = data;
	p = *head;
	if (position == 1)
	{
		newNode->next = p;
		*head = newNode;
	}
	else
	{
		while ((p != NULL) && (k < position))
		{
			k++;
			q = p;
			p = p->next;
		}
		q->next = newNode;
		newNode->next = p;
	}
}
void delNode(LIST &l)
{
	NODE *p;
	while (l.head != NULL)
	{
		p = l.head;
		l.head = l.head->next;
		delete p;
	}
}
int main()
{
	NODE *head = NULL;
	LIST l;
	Input(l);
	Output(l);
	insertInLinkedList(&head, 3, 2);
	Output(l);
	return 0;
}

Em không biết lỗi chỗ nào anh chị giúp em fix lỗi này với , em cảm ơn !

Pete Houston viết 01:41 ngày 01/10/2018

void insertInLinkedList(NODE **head, int data, int position)
{
int k = 1;
NODE *q, *p, *newNode; <— dòng này

Sửa dòng trên

NODE *q = NULL, *p, *newNode;
Bài liên quan
0