I am trying to implement a stack with an array! Every time I execute the program, it runs fine, but I am getting a warning as null character(s) ignored enabled by default.
What does this warning mean? What am I doing wrong?
My code is:
#include <stdio.h>
#include <stdlib.h>
# define MAX 10
int top = -1;
int arr[MAX];
void push(int item)
{
if(top == MAX-1)
{
printf("Oops, stack overflow:\n");
exit(1);
}
top = top + 1;
arr[top] = item;
} // Warning
int popStack()
{
if(top == 0)
{
printf("Stack already empty:\n");
exit(1);
}
int x = arr[top];
top = top - 1;
return x;
}
void display()
{
int i;
for(i=top; i>=0; i--)
{
printf("%d ", arr[i]);
}
return;
}
int peek()
{
if(top == -1)
{
printf("\nEmpty stack");
exit(1);
}
return arr[top];
}
int main()
{
int i, value;
printf(" \n1. Push to stack");
printf(" \n2. Pop from Stack");
printf(" \n3. Display data of Stack");
printf(" \n4. Display Top");
printf(" \n5. Quit\n");
while(1)
{
printf(" \nChoose option: ");
scanf("%d", &i);
switch(i)
{
case 1:
{
int value;
printf("\nEnter a value to push into the stack: ");
scanf("%d", &value);
push(value);
break;
}
case 2:
{
int p = popStack();
printf("Element popped out is:%d\n", p);
break;
}
case 3:
{
printf("The elements are:\n");
display();
break;
}
case 4:
{
int p = peek();
printf("The top position is: %d\n", p);
break;
}
case 5:
{
exit(0);
}
default:
{
printf("\nWrong choice for operation");
}
}
}
return 0;
} // Warning
I am using the Dev-C++ IDE.
Somewhere in your source code file you have a character with the byte value 0 (the ASCII NUL character). Which will be invisible in most text editors.
The compiler (GCC) is just telling you that it ignored that character—which really shouldn't be there in your source code.
You could open your file in a hex editor, figure out where that character is and fix it, or delete your source file and copy-paste it back from the code you posted here.