2016-11-10 9 views
-4

Mein Lehrer ist nicht bereit, mir mit meinem Fehler zu helfen, damit ich nicht weiß, wohin ich sonst gehen soll. In der Zeile 19, addition();, besagt der Fehler, dass es im Funktionsaufruf zu wenige Argumente gibt und ich bin nicht sicher, warum dies der Fall ist. Ich bin ein Anfänger Programmierer, aber ich habe Funktionen vorher aufgerufen, so bin ich mir nicht sicher, warum ich jetzt ein Problem bekomme.Zu wenige Argumente zum Anrufen

#include <stdio.h> 

int addition(int *change); 

int main(void) 
{ 
    int num = 10; 
    printf("Name \t Address \t Value\n"); 
    printf("%s \t %p \t %d\n", "num", &num, num); 

    int *change = &num; 
    printf("Change: %p\n", change); 

    *change = 100; 
    printf("The value of num is %d \n", num); 
    printf("The value of change is %d \n", *change); 

    addition(); 

    return 0; 
} 

int addition(int *change) 
{ 
    int input; 
    int result = input + *change; 

    printf("Input a value "); 
    scanf("%d", &input); 

    printf("The result will be change (%d) + input (%d)\n", *change, input); 
    printf("Result: %d", result); 

    return 0; 
} 
+2

Ihre 'Addition'-Funktion wird für die Übernahme eines Arguments deklariert. Zählen Sie die Anzahl der Argumente zwischen den Klammern in der Zeile 'addition();'. Du vermisst einen. – user2357112

+0

Was bedeutet dieser Fehler also? –

+0

'addition();' nimmt ein 'int *' Argument. Aber du gibst nichts weiter. Willst du 'addieren (ändern);'? –

Antwort

1

Vielleicht ist dies auf einen Kommentar besser geeignet wäre, aber ich fehle den erforderlichen Ruf Kommentar zu schreiben ...

Wenn Sie eine Funktion anrufen, haben Sie oft einige Informationen zu versorgen. Wenn ich auf dich zuging und "Add!" Befahl du könntest antworten "was soll ich hinzufügen?" Dies ist im Wesentlichen, was Ihre Fehlermeldung Ihnen sagt. Sie geben einen Befehl aus, aber Sie geben ihm nicht genügend Informationen, um diesen Befehl auszuführen.

Sie können herausfinden, welche zusätzlichen Informationen von einer Funktion benötigt werden, indem Sie auf ihre Deklaration schauen. In diesem Fall Ihre Funktionsdeklaration ist:

addition(int *change) 

was bedeutet, dass es, um richtig zu funktionieren, die Funktion einen Zeiger auf eine ganze Zahl erfordert (int *). Jedes Mal, wenn Sie die Additionsfunktion aufrufen, müssen Sie dieses Argument angeben, damit die Funktion die Nummer kennt, zu der sie hinzugefügt werden soll.

Verwandte Themen