(Ayuda) Error al modificar el valor de un char en una cadena const char *

Iniciado por Seyro97, 2 Julio 2015, 14:46 PM

0 Miembros y 1 Visitante están viendo este tema.

Seyro97

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
Carlos Peláez González. visita http://www.taringa.net/EnjoyC para muchos tutoriales!

user-marcos

Las constantes no cambian de valor, quita const y te funcionará

Seyro97

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
Carlos Peláez González. visita http://www.taringa.net/EnjoyC para muchos tutoriales!

user-marcos

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.

Seyro97

Carlos Peláez González. visita http://www.taringa.net/EnjoyC para muchos tutoriales!