Funktionen als Veraltet(Deprecated) welche sollte ich benutzen
-
Hallo Leute.
Seit ich VC++ Express habe meint der Compilet daß Funktionen wieitoa
strcpy
strcat
strtok
usw.als veraltet eingestuft werden.
Die "neuen" Versionen davon sind ja
_itoa_
strcpy_s
strcat_s
strtok_susw.
Welche Sollte ich benutzen?
Was ist da sinnvoll?
Die alten oder die neuer Versionen?Danke Mondmann
-
Sinnvoll? Was ist schon sinnvoll?

Frage Dich selbst wie sicher Du es haben möchtest. Was sieht Dein Projekt vor? Wie sicher bist Du Dir bei der Verwendung der Funktionen strcat etc.? Weißt Du dass ein Missbrauch bzw. entsprechende Pufferüberläufe ausgeschlossen sind?
Du bist nicht verpflichtet die neuen Funktionen zu verwenden. Du kannst _CRT_SECURE_NO_DEPRECATE setzen und die alten Funktionen sind dann nicht deprecated! Siehe auch http://msdn2.microsoft.com/en-us/library/8ef0s5kh.aspx
In meinen Augen macht die sichere CRT Sinn! Das heißt jedoch nicht, dass ich alle meine Projekte deshalb gleich umstelle!
-
Naja, sinnvoller wäre es eine gescheite String-Klasse einzuführen und zu nutzen.
(Ob ich mich jetzt bei der Größe des Puffers falsch liege oder bei der Größenangabe bei der Funktion... in beiden Fällen wird Speicher überpinselt.)
-
Nicht alles kann man mit Stringklassen machen! Gerade wenn es um Schnittstellen zum OS geht oder selbst definierte DLL Schnittstellen!
-
Stimmt, aber nur weil ich char* kriege oder übergeben muss zwingt mich dies noch lange nicht intern char* und damit die unsicheren Funktionen zu verwenden.
(Es gibt sicher Stellen an denen es weh tut Speicher/Rechenzeit dafür zu verwenden eine Konvertierung durchzuführen aber einen Tod stirbt man halt und in den meisten Fällen ist es verkraftbar.)