Visual Studio C/C++ ucrtbased.dll Zugriffsverletzung Schriftlich Lage

Ich bin mit Visual Studio Enterprise 2015, ich habe immer diesen Fehler :

Exception thrown at 0x00007FF8E19979A3 (ucrtbased.dll) in Assignment 1C.exe: 0xC0000005: Access violation writing location 0x0000008836510000.

...immer wenn ich einen char/string-input, um das Ausmaß, dass dieses einfache Programm:

#include <stdio.h>
#include <string.h>

int main() {
    char name[40], chk;

    printf("What is your name?");
    scanf_s("%s", name);
    chk = getchar();
    return 0;
}

ist, noch geben mir die gleiche Fehlermeldung. Ich weiß nicht, was es verursacht wird, obwohl ich vermute, es ist etwas von den Bibliotheken, die ich verwende oder den eigentlichen compiler? Offen für Vorschläge.

  • scanf_s("%s", name); -> scanf_s("%s", name,39); Sie müssen angeben, dass die Größe bei der Verwendung von %s Planer in scanf_s .
  • Ich sehe. Es arbeitete. Geben Sie die Größe in bytes oder in Standorten im array?
  • Aus MSDN Unlike scanf and wscanf, scanf_s and wscanf_s require the buffer size to be specified for all input parameters of type c, C, s, S, or string control sets that are enclosed in []. The buffer size in characters is passed as an additional parameter immediately following the pointer to the buffer or variable.
  • Das war auch gleich meine Frage auch. Vielen Dank für den Hinweis!
InformationsquelleAutor Logan | 2015-10-29
Schreibe einen Kommentar