Felder und Zeiger



  • Hallo

    Schreiben Sie Definitionen für Variablen folgenden Typs:

    a) ein Feld von 8 Zeigern auf doppelt genauer Gleitkommawerte,
    b) ein Zeiger auf ein Feld mit 8 doppelt genauen Gleitkommawerten

    Mich verwirrt b, ein Zeiger auf ein Feld ist doch ein Zeiger auf ein Feld...da kann man doch nicht noch angeben wie groß das Feld sein muss, oder? 😕

    Meine Lösungen

    a) *double Feld[8];
    b) *double ptr;

    Gruß
    aendue



  • Doch es gibt Zeiger auf Arrays.

    double (*ptr)[8];
    


  • währe dann:

    double Feld[8];
    double *ptr;
    ptr = &Feld;

    oder?



  • Nein.
    Ein Zeiger auf ein double[8] Array ist inkompatibel zu einem Zeiger auf double, weil double und double[8] unterschiedliche inkompatible Typen sind, und weil Zeiger auf inkompatible Typen inkompatibel sind.
    Es geht ja schließlich auch nicht

    double d = 0;
    double e[8]={1};
    
    d = e;
    oder gar
    e = d;
    

    Warum sollte dann ausgerechnet eine Referenz auf sowas funktionieren, wenn schon die Basis nicht funktioniert?
    Irgendwelche Hoch/Dorfschullehrer oder Buchautoren/Tutorialschreiberlinge mal außen vor, die mit dem Argument "aber in meinem Programm funktioniert es doch so" gern ihre Ahnungslosigkeit dokumentieren.


Anmelden zum Antworten