#1 12. November 2008 Wieso scanf_s? Habe vor ein paar Wochen mit C angefangen. Mein erstes Programm sieht wie folgt aus: PHP: #include <stdio.h> #include <conio.h> int main ( void ) { int a , b , c ; printf ( "Zahl a? " ); scanf ( "%i" ,& a ); printf ( "Zahl b? " ); scanf ( "%i" ,& b ); c = a + b ; printf ( "%i+%i=%i \n" , a , b , c ); _getch (); return 0 ; } Da hat mir Visual Studio dann 2 Warnungen ausgespuckt. Und zwar ist die Funktion scanf unsicher und ich soll scanf_s verwenden. Wo ist da der Unterschied? + Multi-Zitat Zitieren
#2 12. November 2008 AW: Wieso scanf_s? desshalb: Uncontrolled format string - Wikipedia, the free encyclopedia + Multi-Zitat Zitieren
#3 12. November 2008 AW: Wieso scanf_s? hier der original ms - text dazu Security Enhancements in the CRT + Multi-Zitat Zitieren
#4 13. November 2008 AW: Wieso scanf_s? Naja, wohl eher weniger wegen ner Format-String-Attacke, sonder eher wegen nem Buffer Overflow. scanf_s() checkt meines wissens nach auf die Länge des buffers -> kann zu keinem buffer overflow kommen (natürlich angenommen, man übergibt die richtige größe) was du wissen solltest: scanf_s() is nich im offiziellen standard, d.h. es wird wohl auf anderen compilern nicht lauffähig sein. + Multi-Zitat Zitieren