Ver Mensaje Individual
  #4 (permalink)  
Antiguo 10/02/2014, 19:14
CalgaryCorpus
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 16 años, 5 meses
Puntos: 61
Respuesta: error usando cadenas

Lo indicado esta casi bien.

Es cierto que "hola" es un string constante y como tal no se puede modificar, pero al inicializar un arreglo de caracteres con un string constante, el cargador hace la copia para ti, desde la zona constante hacia la variable, gratis.

El string constante existe, y la variable inicializada también. Son 2 entes independientes, usualmente guardados en zonas diferentes de memoria.

Mini.ejemplo:

Código C++:
Ver original
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main()
  5. {
  6.    char h[] = "hola que tal";
  7.  
  8.    cout << "ANTES   : " << h << endl;
  9.    h[0] = 'c';
  10.  
  11.    cout << "DESPUES : " << h << endl;
  12. }

Verlo funcionando aqui: http://goo.gl/rWQAy8
__________________
Visita mi perfil en LinkedIn