Possible en double:
Why do I get a segmentation fault when writing to a string?C++: Permutation a-variables
J'ai le programme suivant:
#include <iostream>
using namespace std;
void reverseString(char* first, char* last)
{
while(first < last)
{
cout << *first << " " << *last << endl; //for debugging; prints 'H' and 'o' then crashes
char temp = *last;
*last = *first; //this line crashes the program
*first = temp;
first++;
last--;
}
}
int main()
{
char* s = "Hello";
reverseString(s, s + strlen(s) - 1);
cout << s << endl;
}
Cependant, je vais avoir du mal à échanger la les valeurs auxquelles les pointeurs pointent. Je pensais que * p = * p1 devrait simplement mettre la valeur pointée sur p à la valeur pointée de p1, mais quelque chose semble buggé. Merci d'avance pour votre aide!
Si vous n'avez pas besoin de l'implémenter vous-même, préférez 'std :: reverse'. – chris
Je sais, mais j'aimerais vraiment savoir pourquoi ça ne marche pas comme je l'ai fait. Merci pour le conseil, au fait. – tomKPZ
Vous modifiez un littéral de chaîne. – chris