Zum Inhalt springen

Empfohlene Beiträge

  • 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.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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...