zaaki
asked on
C Program works with Turbu C++ editor, but not with a UNIX machine
Please see the bellow codes, and try to execute the llTest code on a Unix machine . . .
I compiled llTest on the "Turbo C++" and it works successfully, BUT when I changed the extension from llTest.cpp to llTest.c, the compiler of the Unix machine gave me a lot of errors . . .
Please notify me with the solution to this problem since it is a major part of an Operating Course Project . . .
Thanks in advanced . . .
This is the header code:
/* */
/* queue.c */
/* Demo of dynamic data structures in C */
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define FALSE 0
#define NULL 0
struct listelement{
int dataitem;
listelement *link;
};
listelement * AddItem (listelement * listpointer, int data);
listelement * RemoveItem (listelement * listpointer);
void PrintQueue (listelement * listpointer);
void ClearQueue (listelement * listpointer);
listelement * AddItem (listelement * listpointer, int data) {
listelement * lp = listpointer;
if (listpointer != NULL) {
while (listpointer -> link != NULL)
listpointer = listpointer -> link;
listelement *new_lp = (struct listelement *)malloc(sizeof(struct listelement));
listpointer -> link = new_lp;
listpointer = listpointer -> link;
listpointer -> link = NULL;
listpointer -> dataitem = data;
return lp;
}
else {
listpointer = (struct listelement *) malloc (sizeof (listelement));
listpointer -> link = NULL;
listpointer -> dataitem = data;
return listpointer;
}
}
listelement * RemoveItem (listelement * listpointer) {
listelement * tempp;
printf ("Element removed is %d\n", listpointer -> dataitem);
tempp = listpointer -> link;
free (listpointer);
return tempp;
}
void PrintQueue (listelement * listpointer) {
if (listpointer == NULL)
printf ("queue is empty!\n");
else
while (listpointer != NULL) {
printf ("%d\t", listpointer -> dataitem);
listpointer = listpointer -> link;
}
printf ("\n");
}
void ClearQueue (listelement * listpointer) {
while (listpointer != NULL) {
listpointer = RemoveItem (listpointer);
}
}
This is the code:
/* */
/* queue.c */
/* Demo of dynamic data structures in C */
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "goodLinkedList.h"
main () {
listelement listmember, *listpointer;
int data,
choice;
listpointer = NULL;
printf ("Enter data item value to add ");
scanf ("%d", &data);
listpointer = AddItem (listpointer, data);
PrintQueue (listpointer);
printf ("Enter data item value to add ");
scanf ("%d", &data);
listpointer = AddItem (listpointer, data);
PrintQueue (listpointer);
printf ("Enter data item value to add ");
scanf ("%d", &data);
listpointer = AddItem (listpointer, data);
PrintQueue (listpointer);
printf ("Enter data item value to add ");
scanf ("%d", &data);
listpointer = AddItem (listpointer, data);
PrintQueue (listpointer);
if (listpointer == NULL)
printf ("Queue empty!\n");
else
{
listpointer = RemoveItem (listpointer);
PrintQueue (listpointer);
}
if (listpointer == NULL)
printf ("Queue empty!\n");
else
{
listpointer = RemoveItem (listpointer);
PrintQueue (listpointer);
}
if (listpointer == NULL)
printf ("Queue empty!\n");
else
{
listpointer = RemoveItem (listpointer);
PrintQueue (listpointer);
}
if (listpointer == NULL)
printf ("Queue empty!\n");
else
{
listpointer = RemoveItem (listpointer);
PrintQueue (listpointer);
}
if (listpointer == NULL)
printf ("Queue empty!\n");
else
{
listpointer = RemoveItem (listpointer);
PrintQueue (listpointer);
}
if (listpointer == NULL)
printf ("Queue empty!\n");
else
{
listpointer = RemoveItem (listpointer);
PrintQueue (listpointer);
}
PrintQueue (listpointer);
ClearQueue (listpointer);
return(0);
}
I compiled llTest on the "Turbo C++" and it works successfully, BUT when I changed the extension from llTest.cpp to llTest.c, the compiler of the Unix machine gave me a lot of errors . . .
Please notify me with the solution to this problem since it is a major part of an Operating Course Project . . .
Thanks in advanced . . .
This is the header code:
/* */
/* queue.c */
/* Demo of dynamic data structures in C */
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define FALSE 0
#define NULL 0
struct listelement{
int dataitem;
listelement *link;
};
listelement * AddItem (listelement * listpointer, int data);
listelement * RemoveItem (listelement * listpointer);
void PrintQueue (listelement * listpointer);
void ClearQueue (listelement * listpointer);
listelement * AddItem (listelement * listpointer, int data) {
listelement * lp = listpointer;
if (listpointer != NULL) {
while (listpointer -> link != NULL)
listpointer = listpointer -> link;
listelement *new_lp = (struct listelement *)malloc(sizeof(struct listelement));
listpointer -> link = new_lp;
listpointer = listpointer -> link;
listpointer -> link = NULL;
listpointer -> dataitem = data;
return lp;
}
else {
listpointer = (struct listelement *) malloc (sizeof (listelement));
listpointer -> link = NULL;
listpointer -> dataitem = data;
return listpointer;
}
}
listelement * RemoveItem (listelement * listpointer) {
listelement * tempp;
printf ("Element removed is %d\n", listpointer -> dataitem);
tempp = listpointer -> link;
free (listpointer);
return tempp;
}
void PrintQueue (listelement * listpointer) {
if (listpointer == NULL)
printf ("queue is empty!\n");
else
while (listpointer != NULL) {
printf ("%d\t", listpointer -> dataitem);
listpointer = listpointer -> link;
}
printf ("\n");
}
void ClearQueue (listelement * listpointer) {
while (listpointer != NULL) {
listpointer = RemoveItem (listpointer);
}
}
This is the code:
/* */
/* queue.c */
/* Demo of dynamic data structures in C */
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "goodLinkedList.h"
main () {
listelement listmember, *listpointer;
int data,
choice;
listpointer = NULL;
printf ("Enter data item value to add ");
scanf ("%d", &data);
listpointer = AddItem (listpointer, data);
PrintQueue (listpointer);
printf ("Enter data item value to add ");
scanf ("%d", &data);
listpointer = AddItem (listpointer, data);
PrintQueue (listpointer);
printf ("Enter data item value to add ");
scanf ("%d", &data);
listpointer = AddItem (listpointer, data);
PrintQueue (listpointer);
printf ("Enter data item value to add ");
scanf ("%d", &data);
listpointer = AddItem (listpointer, data);
PrintQueue (listpointer);
if (listpointer == NULL)
printf ("Queue empty!\n");
else
{
listpointer = RemoveItem (listpointer);
PrintQueue (listpointer);
}
if (listpointer == NULL)
printf ("Queue empty!\n");
else
{
listpointer = RemoveItem (listpointer);
PrintQueue (listpointer);
}
if (listpointer == NULL)
printf ("Queue empty!\n");
else
{
listpointer = RemoveItem (listpointer);
PrintQueue (listpointer);
}
if (listpointer == NULL)
printf ("Queue empty!\n");
else
{
listpointer = RemoveItem (listpointer);
PrintQueue (listpointer);
}
if (listpointer == NULL)
printf ("Queue empty!\n");
else
{
listpointer = RemoveItem (listpointer);
PrintQueue (listpointer);
}
if (listpointer == NULL)
printf ("Queue empty!\n");
else
{
listpointer = RemoveItem (listpointer);
PrintQueue (listpointer);
}
PrintQueue (listpointer);
ClearQueue (listpointer);
return(0);
}
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.