Also, das ist das Kapitel, das mir bisher nervtException an (ntdll.dll) geworfen in Parser.exe: Zugriffsverletzung Leseort
void CNCread(fPointer){
printf("\n");
fPointer = fopen ("CNCG.txt", "r");
char line[30];
while(!feof(fPointer)){
fgets(line, 150, fPointer);
puts(line);
}
fclose (fPointer);
return;
}
bekomme ich folgende Fehler nach dem Kompilieren, Laufen und Ausführung Diese Funktion:
Ausnahmebedingung bei 0x00007FFCA1DEEAC5 (Ntdll.dll) in Parser.exe: 0xC0000005: Zugriffsverletzungsleseposition 0xFFFFFFFFFFFFFFFF.
Ich habe gerade dieses Projekt von Code :: Blocks in Visual Studio 2015 konvertiert, legacy_stdio_definitions.lib und etc hinzugefügt, so dass das auch nicht das Problem ist, aber der Code funktionierte gut mit code :: blocks. Danke an alle im Voraus.
'char line [30]' - 'fgets (Linie 150 ...' - Der Versuch, 10 Pfund Kartoffeln in einen 5-Pfund-Sack zu stopfen – PaulMcKenzie
Der offensichtliche Fehler ist, dass Ihr Zeichen-Array ist? zu klein und führt zu undefiniertem Verhalten, wenn die Zeile> 30 Zeichen lang ist, aber es könnte andere Probleme geben, also bitte [mcve] .Ich bin nicht überzeugt, dass Sie diesen tatsächlichen Code mit Visual Studio kompiliert haben - der VS 2015 'C 'Compiler ist immer noch C89/90-Standard, und Sie können nicht in der Mitte eines Funktionsblocks Variablen deklarieren – PaulMcKenzie
@PaulMcKenzie: das ist nicht wahr.VS ist seit langer Zeit C89, und es hat jetzt fast alle von C99 aber tgmath.h und komplex. Und ja, es enthält Deklarationen mit Code gemischt. – librik