Link to home
Start Free TrialLog in
Avatar of zaaki
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);
}
ASKER CERTIFIED SOLUTION
Avatar of cjjclifford
cjjclifford

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial