ejemplos descargar definicion compiler caracteristicas c++

c++ - descargar - Asignación de memoria char*y char



c++ manual (3)

Dado que el primero es un puntero no const para const (solo lectura) de datos, el segundo es un array sin const, como dijo Paul, puede escribir:

p2[2]=''A''; //changing third character - okay

Pero no puedes escribir:

p1[2]=''A'';//changing third character - runtime error!

Cuál es la diferencia entre estos dos en términos de asignación de memoria.

char *p1 = "hello"; char p2[] = "hello";


El primero crea una variable de puntero (cuatro u ocho bytes de almacenamiento según la plataforma) y almacena una ubicación de un literal de cadena allí. El segundo crea una matriz de seis caracteres (incluido el byte de cero terminador de cadena) y copia el literal allí. .

Debería obtener una advertencia de compilación en la primera línea, ya que el literal es const .


El primero es un puntero no const para const (solo lectura) de datos, el segundo es un array no const.