Click here to Skip to main content
15,912,977 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
GeneralGif in Tree Control Pin
Tariq8787-Nov-04 22:41
Tariq8787-Nov-04 22:41 
GeneralRe: Gif in Tree Control Pin
Steve S8-Nov-04 0:38
Steve S8-Nov-04 0:38 
General#include problems Pin
vilmer7-Nov-04 22:35
vilmer7-Nov-04 22:35 
GeneralRe: #include problems Pin
Cedric Moonen7-Nov-04 22:46
Cedric Moonen7-Nov-04 22:46 
GeneralRe: #include problems Pin
vilmer7-Nov-04 23:00
vilmer7-Nov-04 23:00 
GeneralRe: #include problems Pin
Sreekanth Muralidharan7-Nov-04 23:24
Sreekanth Muralidharan7-Nov-04 23:24 
GeneralRe: #include problems Pin
vilmer8-Nov-04 3:09
vilmer8-Nov-04 3:09 
GeneralLinked list headache in VC++. Please help Pin
Sreekanth Muralidharan7-Nov-04 22:03
Sreekanth Muralidharan7-Nov-04 22:03 
Hello buddies,
I am designing a queue by a linked list for an application. I wrote the following code while it brought up an exception in the line marked here. Could you please help me out ?

#include <stdio.h><br />
#include <conio.h><br />
struct queuelist<br />
{<br />
	int intData;<br />
	int valid;<br />
	struct queuelist* next;<br />
<br />
};<br />
struct queuelist *head, *tail;<br />
<br />
int AddToQueue(struct queuelist*,int);<br />
int RemoveFromQueue(struct queuelist*);<br />
int DeleteQueue(struct queuelist*);<br />
void DisplayQueue(struct queuelist*);<br />
void menu();<br />
void menu()<br />
{<br />
<br />
	int option=0;<br />
	struct queuelist* queue;<br />
	int data;<br />
	printf("Queue Manipulation Menu\n");<br />
	printf("........................\n\n");<br />
	printf("1. Add member to queue.\n");<br />
	printf("2. Extract next member.\n");<br />
	printf("3. Delete whole queue.\n");<br />
	printf("4. Help\n");<br />
	printf("5. Display queue contents.\n");<br />
	printf("6. Quit.\n");<br />
	scanf("%d",&option);<br />
	switch(option)<br />
	{<br />
		case 1:<br />
			printf("Adding to queue.\n");<br />
			printf("Member: ");<br />
			scanf("%d",&data);<br />
			if(AddToQueue(queue,data)==-1)<br />
				printf("Could not add..\n");<br />
			else<br />
				printf("Added..\n");<br />
			menu();<br />
<br />
		case 2:<br />
			system("cls");<br />
			printf("Extract next member.\n");<br />
			RemoveFromQueue(queue);<br />
			menu();<br />
<br />
<br />
		case 3:<br />
			DeleteQueue(queue);<br />
			menu();<br />
<br />
		case 4:<br />
			printf("Under Construction.\n");<br />
			menu();<br />
		case 5:<br />
			printf("Queue Contents.\n");<br />
			DisplayQueue(queue);<br />
			menu();<br />
		case 6:<br />
			exit(0);<br />
<br />
		default:<br />
			printf("Invalid Option..\n");<br />
<br />
	}<br />
}<br />
<br />
void main()<br />
{<br />
	system("cls");<br />
	menu();<br />
	getch();<br />
<br />
}<br />
<br />
int AddToQueue(struct queuelist** q, int data)<br />
{<br />
	struct queuelist** temp;<br />
	q = head;<br />
	if(q == NULL)<br />
	{<br />
		printf("First member in queue.\n");<br />
		temp = (struct queuelist**)malloc(sizeof(struct queuelist));<br />
		if(*temp == NULL)<br />
		{<br />
			printf("Not enough memory. Stopping...\n");<br />
			return -1;<br />
		}<br />
		else<br />
		{<br />
			(*temp)->intData = data;<br />
			(*temp)->next=NULL;<br />
			(*temp)->valid=1;<br />
                   /* Exception falls in the next line */<br />
			(*q)->next = temp;<br />
			head = *q;<br />
			tail = *q;<br />
		<br />
		}<br />
<br />
<br />
	}<br />
	else<br />
	{<br />
		while((*q)->next!=NULL) (*q) = &(*q)->next;<br />
<br />
		temp = (struct queuelist**)malloc(sizeof(struct queuelist));<br />
		if((*temp) == NULL)<br />
		{<br />
			printf("Not enough memory. Quitting...\n");<br />
			return -1;<br />
		}<br />
		else<br />
		{<br />
			(*temp)->intData = data;<br />
			(*temp)->next=NULL;<br />
			(*q)->next = *temp;<br />
			(*q) = (*q)->next;<br />
			(*q)->valid = 1;<br />
			tail = *q;<br />
<br />
		}<br />
<br />
<br />
	}<br />
<br />
<br />
<br />
}<br />
<br />
<br />
void DisplayQueue(struct queuelist* queue)<br />
{<br />
	system("cls");<br />
	queue = head;<br />
	if(queue == NULL || queue->valid != 1)<br />
	{<br />
		printf("Empty Queue");<br />
	}<br />
	else<br />
	{<br />
	while(queue != NULL)<br />
	{<br />
		printf("||%d|%x||->",queue->intData,queue->next);<br />
		queue = queue->next;<br />
	}<br />
<br />
	}<br />
	printf("\n");<br />
<br />
}<br />
<br />
int RemoveFromQueue(struct queuelist* queue)<br />
{<br />
<br />
	struct queuelist* prev;<br />
	struct queuelist* second;<br />
	queue = head;<br />
	if(queue->valid !=1)<br />
	{<br />
		printf("Queue Exhausted. No members.\n");<br />
		return -1;<br />
	}<br />
	else<br />
	{<br />
		queue = head;<br />
		prev = queue;<br />
		queue = queue->next;<br />
		second = queue;<br />
		head = queue;<br />
		printf("Popped off : %d at %x\n",prev->intData, prev->next);<br />
		prev->next = NULL;<br />
		free(prev);<br />
	}<br />
<br />
<br />
<br />
}<br />
int DeleteQueue(struct queuelist* queue)<br />
{<br />
	struct queuelist* prev;<br />
	queue = head;<br />
	while(queue!=NULL)<br />
	{<br />
		prev = queue;<br />
		queue = queue->next;<br />
		queue->valid=0;<br />
		free(prev);<br />
	}<br />
<br />
<br />
}

Bye....
Sigh | :sigh: Sreekanth Muralidharan
GeneralRe: Linked list headache in VC++. Please help Pin
Uwe Keim7-Nov-04 22:35
sitebuilderUwe Keim7-Nov-04 22:35 
GeneralRe: Linked list headache in VC++. Please help Pin
Sreekanth Muralidharan7-Nov-04 23:17
Sreekanth Muralidharan7-Nov-04 23:17 
GeneralRe: Linked list headache in VC++. Please help Pin
FearlessBurner7-Nov-04 23:37
FearlessBurner7-Nov-04 23:37 
GeneralThanks to all... Pin
Sreekanth Muralidharan8-Nov-04 18:04
Sreekanth Muralidharan8-Nov-04 18:04 
GeneralRe: Linked list headache in VC++. Please help Pin
John R. Shaw8-Nov-04 12:40
John R. Shaw8-Nov-04 12:40 
GeneralMy Own Linked List Pin
Sreekanth Muralidharan8-Nov-04 19:35
Sreekanth Muralidharan8-Nov-04 19:35 
GeneralRe: My Own Linked List Pin
Sreekanth Muralidharan8-Nov-04 22:33
Sreekanth Muralidharan8-Nov-04 22:33 
GeneralRe: My Own Linked List Pin
John R. Shaw9-Nov-04 5:57
John R. Shaw9-Nov-04 5:57 
GeneralDisabling Toolbar Buttons Pin
Bernhard7-Nov-04 22:00
Bernhard7-Nov-04 22:00 
GeneralRe: Disabling Toolbar Buttons Pin
ThatsAlok7-Nov-04 22:06
ThatsAlok7-Nov-04 22:06 
GeneralRe: Disabling Toolbar Buttons Pin
Uwe Keim7-Nov-04 22:23
sitebuilderUwe Keim7-Nov-04 22:23 
GeneralQuestion about programatically created CListCtrl with WS_BORDER Pin
Uwe Keim7-Nov-04 21:54
sitebuilderUwe Keim7-Nov-04 21:54 
GeneralRe: Question about programatically created CListCtrl with WS_BORDER Pin
Uwe Keim7-Nov-04 22:14
sitebuilderUwe Keim7-Nov-04 22:14 
GeneralXP versions ... Pin
smack_2k27-Nov-04 21:53
smack_2k27-Nov-04 21:53 
GeneralRe: XP versions ... Pin
ThatsAlok7-Nov-04 22:13
ThatsAlok7-Nov-04 22:13 
QuestionHow to program same MSN popup ? Pin
guy20047-Nov-04 21:41
guy20047-Nov-04 21:41 
GeneralCombo Box Error Pin
vc-programmer-7-Nov-04 21:39
vc-programmer-7-Nov-04 21:39 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.