[C con Clase] Arreglo multidimensional
Gilberto Cuba Ricardo
gilbert en hlg.rimed.cu
Vie Abr 24 14:28:59 CEST 2009
Salvador Pozo escribió:
> Hay que distinguir entre modificar el contenido de una cadena y
> modificar el valor de un elemento del array. El array contiene
> punteros, por lo tanto, no hay ningún peligro en modificar los valores
> del array (salvo los derivados de trabajar con punteros).
> Eso contesta a tu segunda pregunta. Si haces la asignación
> szBidiArray[2] = "String3", sencillamente modificarás el valor del
> tercer elemento del array. No hay problema por asignarle un puntero,
> pero sí por hacerlo en la tercera posición, ya que el array ha sido
> declarado (implícitamente) de dos elementos.
Esto lo entendí de maravillas y le encuentro todo el sentido y la lógica.
> En cuanto a la primera pregunta: sí, se trata de un array de punteros.
> Y precisamente por eso, no hay problema en asignar punteros a cadenas
> de longitudes diferentes a las iniciales, o punteros nulos:
> szBidiArray[0] = "Una cadena mucho más larga";
> szBidiArray[1] = NULL;
> En este caso, tendrás problemas si quieres asignar valores diferentes
> a las cadenas, sean o no de la misma longitud.
> La sentencia:
> szBidiArray[1][0] = 'S';
> Producirá un error, puesto que hemos inicializado el array con cadenas
> literales, y estas, por definición son constantes.
No entiendo esto de que por definición son constantes. Disculpa que
sea tan bruto, pero es que soy profesor además de programador y necesito
interiorizar esto bien para poder transmitirlo en los estudiantes, las
dudas de los detalles son las que hacen que estos sean interesantes, o
por lo menos para mí lo son.
> szbidi.cpp 4 error: assignment of read-only location|
Sí, esto lo vi en mi compilador, pero no entiendo la lógica como dije
anteriormente.
> Hasta pronto.
Hasta pronto y disculpa la lata. :)
--
Salu2,
Gilbert
Nodo HLG
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Este mensaje ha sido analizado por MailScanner
en busca de virus y otros contenidos peligrosos,
y se considera que está limpio.
Más información sobre la lista de distribución Cconclase