[C/C++] Wieso scanf_s?

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Mooshka, 12. November 2008 .

  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?
     
  2. 12. November 2008
    AW: Wieso scanf_s?

    hier der original ms - text dazu

    Security Enhancements in the CRT
     
  3. 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.
     
  4. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.