Verhindern von Puffer-überlauf in C/C++

Viele Male habe ich Probleme mit Buffer-Overflow.

int y[10][10][10];

...

y[0][15][3] = 8;

Wie kann ich dieses problem verhindern?
Gibt es irgendein gutes tool, das mir helfen kann?

  • schreiben Sie in C oder C++?
  • Du bekommst bessere Antworten, wenn du make-up bist du der Geist über der Sprache, die Sie verwenden. C und C++ sind sehr verschiedene Sprachen.
  • Ich wünschte, ich könnte Kommentare Bearbeiten... sollten Sie "Ihren Geist" natürlich.
  • Löschen Sie einfach Ihren Kommentar und es erneut hinzuzufügen.
  • Sie müssen nicht zu einem überlauf in deinem Beispiel. 10x10x10 = 1000, so haben Sie ein array von 1000 int-Werten. Index [0][15][3] 15*10 + (3+1) = 154th int Sie sind also in Grenzen.
  • Ich benutze sowohl C als auch C++. Das problem ist für raw-C-arrays wie im Beispiel.ù Sie haben Recht, es ist nicht ein buffer overflow auf, über den ganzen mehrdimensionales array, aber wenn ich definieren ein array als 10x10x10 ich will nicht zu gehen in den einzelnen dimension von array. Danke Mit Freundlichen GRÜßEN
  • Ja, im Ernst, ich sehe nicht ein Pufferüberlauf hier!

InformationsquelleAutor | 2009-07-05
Schreibe einen Kommentar