Vektor in eine Funktion übergeben



  • hallo,

    versuche grade einen vektor in eine funktion zu übergeben, mein programm sieht so aus

    #include <stdio.h>
    #include <math.h>
    void auswertung (double);
    
    int main (void)
    {
    	double v[10] = {1.0,2,0,-4,-5,6,7,8,9,10};
    
    	auswertung (v);
    
    }
    
    void auswertung (double v[])
    {
    

    bekomme aber immer die fehlermeldung

    Error c:\lcc\projects\ertert.c: 9 type error in argument 1 to `auswertung'; found 'pointer to double' expected 'double'
    Error c:\lcc\projects\ertert.c: 17 redefinition of 'auswertung'
    Error c:\lcc\projects\ertert.c: 3 Previous definition of 'auswertung' here

    könnt ihr mir sagen, was ich falsch mache?

    danke



  • Vergleich doch mal die Parameterlisten der Deklaration und der Definition der Funktion auswertung() - erkennst du den Unterschied? (Tip: erstere passt nicht zu der Art, wie du die Funktion anwenden willst)



  • achso,

    hab die deklaration jetzt so geschrieben

    void auswertung (double[]);

    is das richtig so? bekomme jedenfalls keine fehlermeldung mehr. wusste nicht, dass man das [] hinschreiben muss.



  • Ja, so stimmt's (wobei ich der Funktion noch dazusagen würde, wieviele Elemente in dem übergebenen Array stecken). 'double' ist ein einzelner Gleitkommawert, 'double[]' ein Array - das ist ein Unterschied, über den der Compiler gerne informiert werden möchte 😉


Anmelden zum Antworten