Ich schrieb diesen Code gestern. Es kompiliert/baut fehlerfrei ohne Fehler auf und öffnet eine Windows-Eingabeaufforderung, die mich auffordert, einen Originaltext einzugeben. Ich gebe den Originaltext ein, den mein Programm kodieren soll und drücke Enter. Dies führt zu dem folgenden Fehler:Wie behebe ich Fehler: Exception bei 0x00007FFC284DDDFF (ucrtbased.dll) in EncodeTextApp.exe geworfen: 0xC0000005
Exception thrown at 0x00007FFC284DDDFF (ucrtbased.dll) in EncodeTextApp.exe: 0xC0000005: Access violation writing location 0x00007FF7CAEC9C23.
If there is a handler for this exception, the program may be safely continued.
Diese Ausnahme oben passiert, wenn ich Eingabe der Nachricht, die ich in der Eingabeaufforderung codieren möchte, wenn das Programm ausgeführt wird. Dann stürzt es einfach ab.
Der folgende Code ist der aus meiner Anwendung. Ich weiß nicht, ob ich hier etwas falsch mache.
#include <stdlib.h>
#include <conio.h>
#include <iostream>
#define MAX_LEN 80
#define encodingshift 17
char* encode(char* str) {
int i = 0;
while (str[i] != '\0') {
str[i] = str[i] - encodingshift;
/*str[i] = (char)((int)str[i] + encodingshift) % 26;*/
}
return (str);
}
void main() {
char *str = "";
printf("Please enter the message to encode: ");
fgets(str, MAX_LEN, stdin);
char* original = str;
str = encode(str);
printf("\nOriginal Message: %s", original);
printf("\nEncoding Shift: %d", encodingshift);
printf("\nEncoded message: %s", str);
getchar();
}
Ich habe alles getan, von der Deinstallation des C++ Artikels von Visual Studio und Neuinstallation von ihnen, die gesamten Visual Studio wieder zu installieren, aber der Fehler nicht weggeht. Daher würde ich gerne wissen, was ich zu tun habe. Es ist das einzige, was mich davon abhält, dass meine Programme funktionieren.
Das richtige Werkzeug, um solche Probleme zu lösen, ist Ihr Debugger. Sie sollten Schritt für Schritt durch Ihren Code * gehen, bevor Sie auf Stack Overflow nachfragen. Für weitere Hilfe lesen Sie bitte [Wie kleine Programme zu debuggen (von Eric Lippert)] (https://ericlippert.com/2014/03/05/how-to-debug-small-programs/). Zumindest sollten Sie Ihre Frage bearbeiten, um ein [minimales, vollständiges und verifizierbares] (http://stackoverflow.com/help/mcve) Beispiel einzufügen, das Ihr Problem zusammen mit den Beobachtungen, die Sie in der Debugger. –
Die Sache ist, dass ich schon den Debugger durchgesehen habe. – lobfil
Also genau * wann * wirft es die Ausnahme? –