Übergabe von Zeigern oder 1-dim Arrays



  • Was ist der Unterschied zwischen den drei nachfolgenden Funktionen?

    int generate_captures(int moves, int move_list[256]);
    int generate_captures(int moves, int move_list[]);
    int generate_captures(int moves, int * move_list);
    

    Danke!



  • Was ist der Unterschied zwischen den drei nachfolgenden Funktionen?

    Es gibt keinen.
    🙂



  • die angegebenen init's sind gleich, weil der compiler einer Funktion kein array sondern nur ein zeiger auf das erste element eines arrays übergibt



  • Tomahawk schrieb:

    Was ist der Unterschied zwischen den drei nachfolgenden Funktionen?

    int generate_captures(int moves, int move_list[256]);
    int generate_captures(int moves, int move_list[]);
    int generate_captures(int moves, int * move_list);
    

    unterschiedlicher informationsgehalt für den coder. bei (1) sieht man, dass array, dessen adresse übergeben wird, genau 256 elemente hat. bei (2), dass die adresse eines arrays unbestimmter grösse übergeben wird und bei (3) ist es ein pointer auf mindestens einen 'int'. technisch gesehen ist es aber dasselbe (wie µngbd schon schrieb).
    🙂


Anmelden zum Antworten