J'ai écrit une fonction C++ qui peut être représentée comme ci-dessous: Tout ce qu'elle fait est de prendre une chaîne de caractères (c'est là qu'elle plante) et de l'inverser.Tableau de caractères de longueur dynamique
#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;
}
Je suppose qu'il existe une sorte de violation d'accès à la mémoire.
Qu'est-ce qui ne fonctionne pas?
Erreur: Segmentation fault (core dumped)
'char * str,' - vous jamais allouer de la mémoire pour une chaîne -> vous appelle un comportement non défini *. Si vous écrivez en C++, utilisez 'std :: string' à la place des tableaux' char' de style C. (Aussi ['std :: gets'] (http://en.cppreference.com/w/cpp/io/c/gets) est obsolète en C++ et a été supprimé en C++ 14) – UnholySheep
C++ et C aren ' t la même langue. Choisissez l'un d'entre eux et essayez ensuite de résoudre votre tâche. – pmaxim98
J'ai enlevé le C-tag car c'est clairement C++ – 4386427