Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: Seyro97 en 2 Julio 2015, 14:46 PM

Título: (Ayuda) Error al modificar el valor de un char en una cadena const char *
Publicado por: Seyro97 en 2 Julio 2015, 14:46 PM
Hola, muy buenas a tod@s. Me estoy desesperando con Visual Studio 12.0 Express. El error se resume en un código muy simple:

Código (cpp) [Seleccionar]

int main() {
const char *code;
code = new char[2];
code[0] = 'a'; // Aquí está el error

       return 0;
}


Como ven, primero creo una cadena de caracteres. Por consiguiente, la inicializo con el operador new. Y por último, el lugar donde está el error. El error según Visual Studio dice así: "Error: La expresión debe ser un valor L modificable". También he probado lo siguiente:

Código (cpp) [Seleccionar]
*code = 'a'

No entiendo lo que pasa. A lo mejor es una tontería...

Espero que me puedan ayudar. Gracias
Título: Re: (Ayuda) Error al modificar el valor de un char en una cadena const char *
Publicado por: user-marcos en 2 Julio 2015, 14:55 PM
Las constantes no cambian de valor, quita const y te funcionará
Título: Re: (Ayuda) Error al modificar el valor de un char en una cadena const char *
Publicado por: Seyro97 en 2 Julio 2015, 14:58 PM
Vale, funciona. Pero lo que era constante no era el puntero? Es decir, la dirección es constante y lo que es apuntado se puede modificar? O al revés? Gracias
Título: Re: (Ayuda) Error al modificar el valor de un char en una cadena const char *
Publicado por: user-marcos en 2 Julio 2015, 15:09 PM
Cierto mira:
Código (cpp) [Seleccionar]

int main() {
const char *code;
code = new char[2];
code = (char *) "ad";
cout << code;//ad
       return 0;
}

si quieres guardar sólo a, si no recuerdo mal tienes que especificar el tamaño.
Título: Re: (Ayuda) Error al modificar el valor de un char en una cadena const char *
Publicado por: Seyro97 en 2 Julio 2015, 15:17 PM
Vale, muchas gracias!