Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Danke Klotzkopp,

Fehler erkannt. Ich mußte erstmal in der Hilfe nach "Literalen" suchen, mir war der Begriff nicht geläufig. Ich hatte ihn mit Ressource gleichgesetzt.

  • Antworten 54
  • Erstellt
  • Letzte Antwort

Top-Benutzer in diesem Thema

Geschrieben
Folgende Operationen sind verboten, weil sie undefiniertes Verhalten erzeugen:

  • Jegliche Zugriffe über uninitialisierte Zeiger
  • Jegliche Zugriffe über Nullzeiger
  • Schreibzugriffe auf Stringliterale
  • Jegliche Zugriffe über den alloziierten Speicherbereich hinaus (Buffer Overflow)

und da str4= 0 ist, ist das dann verboten

Geschrieben

Ich habe das mal praktisch durchgeführt.

Zeilen 06 und 07 funktionieren. Ich frage mich hier allerdings warum Zeile 06 funktioniert.

Zeile 08 und 09 funktionieren nicht. Bei Zeile 08 ist das klar. Bei Zeile 09 bin ich mir nicht sicher. Liegt es daran, dass str4 einfach völlig undefiniert ist bzw.str4 kein Speicher zur Verfügung gestellt wird?

lg

Geschrieben
Ich habe das mal praktisch durchgeführt.

Zeilen 06 und 07 funktionieren. Ich frage mich hier allerdings warum Zeile 06 funktioniert.

Diese Herangehensweise funktioniert bei C und C++ nicht. Laut Standard erzeugt der Code in Zeile 6 undefiniertes Verhalten. Das heißt nicht, dass das Programm an dieser Stelle abstürzen muss (das wäre ein definiertes Verhalten), sondern dass irgendetwas passieren kann.

Man darf bei C und C++ daraus, dass ein Code funktioniert, nicht schlussfolgern, dass er richtig ist.

Liegt es daran, dass str4 einfach völlig undefiniert ist bzw.str4 kein Speicher zur Verfügung gestellt wird?
str4 ist ein Nullzeiger. Nullzeiger dürfen nicht dereferenziert werden, sonst -> undefiniertes Verhalten. Konkret erzeugt das bei allen mir bekannten Compilern auf Betriebssystemen, die virtuellen Speicher anbieten, eine Schutzverletzung.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...