Ver Mensaje Individual
  #8 (permalink)  
Antiguo 21/10/2014, 10:08
eferion
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 10 años, 1 mes
Puntos: 204
Respuesta: realloc array 3 dimensiones char

Bueno, tal cual lo cuentas, tu código ya está haciendo eso.

Eso si, tienes que tener en cuenta que no estás copiando el contenido de los punteros sino que estás copiando los punteros en sí... eso quiere decir que un cambio en uno de los elementos de la matriz conlleva a que dicho cambio se va a reflejar en las otras "filas" de la matriz. Por ejemplo, un cambio en el contenido apuntado por [0][1] se reflejará también en [1][1], [2][1], [3][1], ...

Me explico:

Código C++:
Ver original
  1. int var = 4;
  2. int* ptr1 = &var;
  3. int* ptr2 = &var;
  4.  
  5. *ptr1 = 8;
  6.  
  7. printf( "%d %d %d", var, *ptr1, *ptr2 );

El ejemplo anterior va a imprimir "8 8 8"...

Por otro lado, dado que cada vez que incrementas el tamaño de la matriz la vuelves a rellenar de cero como si no tuviese valores previos, puedes cambiar tranquilamente el realloc por un malloc y un free... realloc tiene la mala costumbre de hacer una copia de la región vieja de memoria a la nueva... te puedes ahorrar ese tiempo si no lo necesitas.