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;?
-