[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