Multizeiger.



  • int Eingabe;
    delete &Eingabe; // Speicherreserwierung wird wieder an das OS Abgegeben.
    Es geht auch wunderbar.

    eine der oberen drei zeilen ist zu viel.



  • Piotrek schrieb:

    Das Programm aus dem Buch ist so ähnlich

    Schau nochmal ganz genau hin 😉

    Piotrek schrieb:

    Es geht auch wunderbar

    Nicht wirklich. Mit delete darfst du nur löschen, was du mit new angelegt hast.
    Wie gesagt, schau nochmal ins Buch.

    Dein zweiter Versuch ist völlig daneben.

    int* feld[3]; ist ein Feld von 3 Zeigern auf int. Allerdings zeigen die zuerst mal alle ins nichts. Musst vorher also erstmal mit new, für jeden Zeiger Speicher reservieren.



  • Sorry . Das war schrott eben.........
    Warum funktioniert dieser Code nicht ?
    Kann mir da jemand weiter helfen ?

    #include <iostream.h>
    #include <stdlib.h>
    
    void main(void)
    {
      int *zeigerEingabe[3];
      int Eingabe[3], i;
      int *zeigerEingabe[0] = &Eingabe[0];  
      cout << "Dieses Programm soll die Funktonweise eines Zeigers verdeutlichen.\n";
      cout << "Bitte geben Sie eine drei ganze Zahl ein :\n"; 
      for ( i=0; i<3; i++ )
      {
        cout << "Zahl " << i+1 << " .";
        cin >> Eingabe[i];
      }
      for ( i=0; i<3; i++ )
      { 
      cout << "Die Eingabe war " << Eingabe[i] << " ." << endl;
      cout << "Die Variable ist im Speicher als " << *zeigerEingabe[i] << " gespeichert." << endl;
      cout << "Die Variable hat den Speicherplatz mit der Nummer " << &Eingabe[i] << " reserviert bekommen." << endl;
      }
      delete &Eingabe;
      system ("PAUSE");
    }
    

    😞 😞 😞 😞 😞 😞 😞 😞 😞 😞



  • Also es geht doch nur mit new ? 😮

    z.Bsp. int *Zahl = new int[3] ? :p
    cout << "Geben Sie eine Zahl ein : ";
    cin >> Zahl[1];
    cout << "Zahl : " << Zahl[1] << endl;
    cout << "Adresse : " << &Zahl[1] << endl;
    delete Zahl; 😕 ?




Anmelden zum Antworten