Estoy tratando de implementar un cifrado de desplazamiento básico en C++. No puedo avanzar hasta que descubra qué está causando la falla de segmentación. Pasé por el código usando gdb y el problema parece provenir del iterador.¿Por qué aparece una falla de segmentación al iterar a través de esta cadena?
1 #include <iostream>
2 #include <string>
3
4 std::string encrypt (std::string plain, int key);
5
6 int main()
7 {
8 std::string plaintext;
9 std::getline(std::cin,plaintext,'\n');
10 encrypt(plaintext,3);
11 }
12
13 std::string encrypt(std::string plain, int key)
14 {
15 std::string::iterator ic;
16 for (ic= plain.begin(); ic != plain.end();++ic)
17 {
18 std::cout <<*ic + key << std::endl;
19 }
20 }
error:
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7b73ef1 in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()() from /usr/lib/libstdc++.so.6
pero ¿por qué obtiene un SIG en '~ basic_string'? – osgx
ah gracias que lo arregló –
Ni siquiera sabía que esto podría compilar. Por cierto, @kernel, ¡no olvides aceptar la respuesta correcta! – Marlon