Я не могу найти неисправную ссылку на этот кусок кода:Отсутствует аргумент? C-программирование
#include "queue.h"
int pause(){
return 1;
}
void add_to_queue(person p){
if(full() != 1){
printf ("\nAnge förnamn:");
scanf ("%c", p.first_name);
printf ("\nAnge efternamn:");
scanf ("%c", p.sure_name);
printf ("\nAnge person nummer:");
scanf ("%c", p.pers_nbr);
enqueue(p);
}
else{
printf ("\nKön är full!");
}
}
void show_menu(){
printf ("\n**** Meny ****\n");
printf ("1. Lägg till personer i kön\n");
printf ("2. Ta bort personer ur kön\n");
printf ("3. Skriv ut kön\n");
printf ("4. Avsluta\n\n");
}
int get_selection(){
int selection;
do{
printf ("Ange ett alternativ 1-4: ");
scanf ("%d", &selection);
if (selection >= 1 && selection >= 4){
printf ("\nFel");
}
}while (selection < 1 && selection < 4);
return selection;
}
void run_selection(int selection){
switch (selection){
case 1 :add_to_queue(); <------- THIS IS WHERE THE PROBLEM IS!
break;
case 2 ://remove_from_queue();
break;
case 3 ://print_queue();
break;
case 4 : exit(0);
break;
default:
printf("Ogiltigt val! Tryck enter och välj ett alternativ mellan 1-4");
break;
}
}
это дает мне ошибку:
menu.c:49:10: error: too few arguments to function ‘add_to_queue’
, но я не могу понять, какой аргумент он должен быть здесь? Пробовал add_to_queue(p)
и add_to_queue(person p)
и все .... ПОМОЩЬ !!!!
Не относится к проблеме, о которой вы спрашиваете, но функции, которые не принимают аргументов, должны быть определены с помощью '(void)', а не '()'. Пустые круглые скобки представляют собой устаревшую форму, которая не дает вам никакой проверки времени компиляции. –