Ich habe eine C++ Funktion geschrieben, die wie folgt dargestellt werden kann: Alles, was es tut, ist eine Zeichenfolge (das ist, wo es abstürzt) und es umzukehren.Zeichen Array von dynamischer Länge
#include <iostream>
#include <string.h>
#include <stdio.h>
using namespace std;
int main()
{
cout<<"Enter a string: "<<endl;
char *str;
gets(str);
cout<<"Reversed String is: ";
for(int i=strlen(str)-1;i>=0;i--)
cout<<(str[i]);
return 0;
}
Ich denke, es gibt eine Art von Speicherzugriffsverletzung.
Jeder Hinweis, warum das nicht funktioniert?
Fehler: Segmentation fault (core dumped)
'char * str;' - man kann nie Speicher für einen String zuweisen -> Sie Rufen Sie * undefined Verhalten * auf. Wenn Sie in C++ schreiben, verwenden Sie einfach 'std :: string' anstelle von' char'-Arrays im C-Stil. (Auch ['std :: gets '] (http://en.cppreference.com/w/cpp/io/c/gets) ist in C++ veraltet und wurde in C++ entfernt 14) – UnholySheep
C++ und C aren' t die gleiche Sprache. Wähle einen von ihnen aus und versuche dann, deine Aufgabe zu lösen. – pmaxim98
Ich habe das C-Tag entfernt, da dies eindeutig C++ ist – 4386427