Array mit einem Zeiger übergeben



  • Hallo
    Ich habe in meinem code folgenndes array deklariert:

    int encoder[4]={1,2,3,4};
    

    nun möchte ich das komplette arry gerne mit einem Zeiger an eine Funktion übergeben. Wie sieht das syntaktisch aus???
    Ich bekomm es nur hin eine einzelnen wert des arrays zu übergeben.

    Kann mir jemand helfen??

    gruß



  • foo( encoder );
    

    Es wäre aber noch gut, die Größe des Arrays mit zu übergeben. Die geht bei so einem Aufruf nämlich verloren.



  • also das mit der funktion selbst funktioniert jetzt, da doch der name des arrys selbst ein zeiger auf das array ist??? oder nicht?
    wozu brauch ich die größe?

    //////////////////////////////////
    int encoder1 [4]={1,2,3,4};
    int encoder2 [4]={11,12,13,14};
    int encoder3 [4]={21,22,23,24};
    
    /////////////////////////////////
    int funk (int *encoder){
    
    	cout <<"funk a encoder1 = " <<encoder[3] << "\n";  //Beispiel zum test
    
    return 0;
    }
    int main(int argc, char* argv[])
    {
    int a=0;
    int b=0;
    
    funk (encoder1);				//der name des arrays ist selbst ein zeiger auf das array
    funk (encoder2);
    funk (encoder3);
    

    das problem welches ich jetzt noch hab ist folgendes:
    Das ganze Programm ist für einen µC, da brauche ich einen Funktionsprototypen ähnlich wie

    void funk(void);
    

    aber das void ist ja jetz verkehrt, was kommt da rein??



  • 😕

    Sowas vielleicht?

    void funk(int* encoder)
    

    😕

    Aber es kann jetzt nicht ernsthaft das Problem gewesen sein, von "int func(int* encoder)" auf "void funk(int* encoder)" zu kommen, oder?



  • ob mans glaubt oder nicht, für einen Anfänger kann das eine Barriere sein


Anmelden zum Antworten