C programmation, erreur: l'objet appelé n'est pas une fonction ou un pointeur de fonction
Je suis en train d'écrire un programme qui met en œuvre la Pop et Push fonctions. Le problème est, je suis en train de passer le pointeur qui pointe à l'entier Supérieur de la fonction, de sorte que cet entier ne cesse de changer, mais lorsque j'essaie de compiler j'ai toujours cette ligne:
**erreur: objet appelé n'est pas une fonction ou un pointeur de fonction (*t)--
#include<stdio.h>
#include<stdlib.h>
#define MAX 10
int push(int stac[], int *v, int *t)
{
if((*t) == MAX-1)
{
return(0);
}
else
{
(*t)++;
stac[*t] = *v;
return *v;
}
}
int pop(int stac[], int *t)
{
int popped;
if((*t) == -1)
{
return(0);
}
else
{
popped = stac[*t]
(*t)--;
return popped;
}
}
int main()
{
int stack[MAX];
int value;
int choice;
int decision;
int top;
top = -1;
do{
printf("Enter 1 to push the value\n");
printf("Enter 2 to pop the value\n");
printf("Enter 3 to exit\n");
scanf("%d", &choice);
if(choice == 1)
{
printf("Enter the value to be pushed\n");
scanf("%d", &value);
decision = push(stack, &value, &top);
if(decision == 0)
{
printf("Sorry, but the stack is full\n");
}
else
{
printf("The value which is pushed is: %d\n", decision);
}
}
else if(choice == 2)
{
decision = pop(stack, &top);
if(decision == 0)
{
printf("The stack is empty\n");
}
else
{
printf("The value which is popped is: %d\n", decision);
}
}
}while(choice != 3);
printf("Top is %d\n", top);
}
source d'informationauteur Alisher Kassymov
Vous devez vous connecter pour publier un commentaire.
Vous avez raté un point-virgule juste avant cette ligne avec l'erreur:
La raison de cette erreur étrange, c'est que le compilateur a vu qqch comme ça:
Lequel elle pourrait l'interpréter comme un appel à un pointeur de fonction à venir à partir d'une table, mais cela n'a évidemment aucun sens, parce que stac est un tableau d'entiers, pas un tableau de pointeurs de fonction.