Foro de elhacker.net

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
  1. int main() {
  2. const char *code;
  3. code = new char[2];
  4. code[0] = 'a'; // Aquí está el error
  5.  
  6.        return 0;
  7. }

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
  1. *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
  1. int main() {
  2. const char *code;
  3. code = new char[2];
  4. code = (char *) "ad";
  5. cout << code;//ad
  6.        return 0;
  7. }
  8.  
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!