Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

27.01.2020, 21:57

Sicherheitsabfrage mit sizeof

Hallo Allerseits!

Ich habe das Buch C++ für Spieleprogrammierer 3. Aktualisierte Auflage durchgearbeitet und bin jetzt dran Wiederholungen zu machen. Z.b. in Listings wo man auch darauf hingewiesen wird Erweiterungen zu machen. In Kapitel 8 Listing 8.15 "Anwendung einer Logfileklasse, Seite 254 Zeile 133 hab ich so ein Fall: Dort wird ein char-buffer deklariert in dessen eckigen Klammern der MAX_BUFFER in der Headerdatei (Zeile 11) auf 1024 Zeichen festgelegt wurde. Im Text steht nun das hier eine potenzielle Fehlerquelle lauern kann, falls der String grösser oder kleiner wird und man mittels sizeof eine Fehlerabfrage einbauen sollte. Bisher hab ich eine if-Bedingung eingebaut, die aber leider nicht richtig funktioniert. Mit sizeof muss ich noch weiter experimentieren. Oder hat jemand eine Idee?
Ausserdem wird das Logfile in eine Worddatei geschrieben. Hatte keine richtige Lust html-Tags zu büffeln. Daher ist die Ausgabe in der Worddatei nicht so schön formatiert, aber mit escape-Zeichen und Typenspezifizierer geht es auch.

Gruess Henry

Tris

Treue Seele

Beiträge: 102

Wohnort: ~Stuttgart

  • Private Nachricht senden

2

28.01.2020, 14:54

Hi,

wäre praktisch wenn du den Code den du hast auch postest. :)

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

3

29.01.2020, 13:04

An sich wäre es wirklich praktisch wenn du deinen Code posten würdest.
Es ist erst mal egal ob der Buffer größer als dein String ist. Der Buffer muss nur groß genug sein damit der gewünschte String dort rein passt. Du möchtest also prüfen ob der gewünschte String maximal so groß wie dein Buffer ist. Zusätzlich musst du dir natürlich überlegen was du andernfalls machen möchtest. Ich habe das Buch grad nicht zur Hand, weshalb ich nicht genau weiß wie der Code dort aussieht. Im einfachsten Fall nimmst du von dem String nur so viel wie in den Buffer passt (komischer Satz :) ). Alternativ könntest du mit einer Schleife Stück für Stück des Strings in die Datei schreiben.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Werbeanzeige