Zugriffsfehler... Wer kann mir helfen???
-
Hi,
Ich habe ein Übungsprogramm abgetippt. Bekomme aber beim compilieren folgenden Fehler:
-Im Projekt ...exe ist eine Exception der Klasse EAccessViolation aufgetreten. Meldung: 'Zugriffsverletzung bei Adresse 004011E7. Lesen von Adresse 00000004'. Prozess wurde angehalten. MIt einzelne Anweisung oder start fortsetzen.
Hier ist der komplette Code:
/*######################################### Dynamische Speicherverwaltung #########################################*/ #include <iostream.h> struct strukturtyp { int inhalt1; int inhalt2; }; strukturtyp* strukturzeiger1; strukturtyp* strukturzeiger2; void main() { // Neues Element erzeugen strukturzeiger1 = new(strukturtyp); // Werte hineinschreiben strukturzeiger1->inhalt1 =10; strukturzeiger1->inhalt2 =20; // Ausgabe der Werte über den Zeiger cout << "Inhalt 1 : "; cout <<strukturzeiger1->inhalt1 << "\n"; cout << "Inhalt 2 . "; cout << strukturzeiger2->inhalt2 << "\n"; // Die Adresse in einen anderen Zeiger kopieren strukturzeiger2 = strukturzeiger1; // Ausgabe der Werte über den anderen Zeiger cout << "Inhalt 1 : "; cout << strukturzeiger2->inhalt1 << "\n"; cout << "Inhalt 2 : "; cout << strukturzeiger2->inhalt2 << "\n"; // Speicher freigeben delete(strukturzeiger2); // Zur Sicherherit die Zeiger auf NULL setzen strukturzeiger1 = NULL; strukturzeiger2 = NULL; char p[50]; cin.getline(p,50); }
Der Debugger bleibt in Zeile 25 stehen:
cout << strukturzeiger2->inhalt2 << "\n";
Ich kann nicht erkennen was daran falsch ist. Wenn jemand von euch ne Idee würde mir das sehr weiterhelfen.
MFG
Mr.Blond
-
Weil der Zeiger auf einen zufälligen Speicherbereich zeigt...
du musst per new ein objekt erstellen und den Zeiger darauf zeigen lassen.
-
Ich Depp kann nicht mal richtig abtippen. Obwohl ich alles schon mehrmals überprüft hatte. Sorry. Und danke nochmal. Jetzt funktionierts.