warning C4996: 'strcpy' was declared deprecated
-
und sprintf
-
Es gibt schon seit Windows 2000 im Windows API neue Funktionen fuer Strings. Die wurden von Microsoft empfohlen, um Problemen mit Buffer Overruns aus dem Weg zu gehen. Deswegen ist fuer Microsoft "strcpy() deprecated".
-
char *strBuf = new char[strlen(strPrm)+1];
strcpy(strBuf,strPrm);Wenn strPrm kein '\0' enthält, dann tritt der Fehler schon vor strcpy auf!!!
Muss ich das jetzt etwa so schreiben?
char *strBuf = new char[strlen(strPrm)+1];
strncpy(strBuf,strPrm,strlen(strPrm)+1);oder
size_t lenBuf = strlen(strPrm)+1;
char *strBuf = new char[lenBuf];
strncpy(strBuf,strPrm,lenBuf);

-
Am besten wäre wohl
string s = strPrm;.
-
Ja aber nicht für Computerspiele...
Naja wie auch immer strncpy ist leider ebenfalls deprecated... :p
-
Ishildur schrieb:
Ja aber nicht für Computerspiele...
wieso nicht?
-
Hallo
Naja wie auch immer strncpy ist leider ebenfalls deprecated...
Damit meint der Compiler wohl den hier
unter Security Note angegebenen Nachteil von strnpy.
Also benutzt std::string, oder du schaltest diese spezielle Warnung aus, wenn du dir sicher bist, das du strncpy richtig einsetzt.Auch bei sprintf gibt die MSDN eine Security Note an
bis bald
akari
-
akari schrieb:
Damit meint der Compiler wohl den hier
unter Security Note angegebenen Nachteil von strnpy.lol. nu tickt ms völlig aus.
-
Ishildur schrieb:
Ja aber nicht für Computerspiele...
Ja, wieso nicht?
-
C ist deprecated.
-
Artchi schrieb:
Ishildur schrieb:
Ja aber nicht für Computerspiele...
Ja, wieso nicht?
Zu einfach...
-
Hihi, dann sollen die Gamecoder gefälligst in ASM coden und nicht in C. Wenn denn schon! Und nicht dieses Pseudo-coolness.

-
c++ fan schrieb:
C ist deprecated.

-
Braucht nur mal in Spieleprogrammierforen, à la www.spieleprogrammierer.de zu gehen und euch deren Code anschauen. Nach dem Motto: wenn etwas leserlich und einfach ist, kann es nur langsam sein.
-
Und new char[] soll schneller sein?
-
Ringding schrieb:
Und new char[] soll schneller sein?
Ne, nicht wirklich. "Spieleprogger" haben einfach nur Angst vor Abstraktion.

-
Walli schrieb:
Ringding schrieb:
Und new char[] soll schneller sein?
Ne, nicht wirklich. "Spieleprogger" haben einfach nur Angst vor Abstraktion.


ja, endlich kapiere ich, warum manches so ist, wie es ist.
-

-
Naja, was soll ich sagen, die Stringklasse ist einfach ein wenig overloaded... Deshalb bevorzuge ich für die Spieleengine immer noch c - strings, für die Leveleditoren verwende ich allerdings c#! Da darfs schön einfach sein...

-
Was ist denn daran Overloaded? Mir kommt es so vor, als ob immernoch die Meinung herrscht, das Klassen mehr Code zur Laufzeit erzeugen als Funktionen. Glaubst du wirklich, das std::string mehr Code benötigt, als wenn du die ganzen C-Funktionen für die String-Bearbeitung benötigst? Komisch komisch...