[archimedes] Re: Fragen zu Symbolen

  • From: Thomas Milius <Thomas-Milius@xxxxxxxxxxx>
  • To: archimedes@xxxxxxxxxxxxx
  • Date: Sun, 14 Feb 2016 18:37:16 +0100

In message <c036db5155.Alex@xxxxxxxxxxxxxxxxxxxxxxxxxxxx>
          Alexander Ausserstorfer <bavariasound@xxxxxxxxxxxxxxx> wrote:

Jetzt kommt's drauf an: Weist man dem Feld eine Zeichenkette < 13
Zeichen zu, wird vom Compiler automatisch eine binäre Null (NUL, /0)
nach dem letzten Zeichen angehängt. Weist man dem Feld aber genau 13
Zeichen zu, hängt der Compiler keine binäre Null mehr an.

Kann man so pauschal nicht sagen und mag GGC spezifisch sein, auch mögloch
sind je nach Einstellungen Warmeldungen oder anderes. Ein strcpy eines 13
Bytes Strings wird Dir genadenlos hinten im 14. Byte eine 0 ranhängen. Die
geht dann in die Datenstruktur, die hinter dem String liegt. Da muß man bei C
halt aufpassen, und da liegt eben auch einige der größten Gefahren bei der
C-Programmierung. Andersrum ist es auch nicht besser, ein strcpy eines nicht
terminierten Strings liefert nach Zeichen 13 irgendwas in einem
höchstwahrscheinlich zu klein dimensionierten Feld ab.

Thomas Milius

Other related posts: