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

Dado que son strings, puedes usar la función strcpy para copiar los strings... ahora, ten presente que tendrás que reservar memoria para esos nuevos strings... el código ya se te empieza a complicar con esta configuración

Código C++:
Ver original
  1. if (record_count==0)
  2. {
  3.     arr_number=argc;
  4.     Col_name=azColName;
  5.     rows=(char *** )calloc(argc, sizeof(char ** )) ;
  6.     for(int i = 0 ; i < argc; i++ )
  7.     {
  8.         rows[i] = (char ** ) calloc(1,sizeof(char * )) ;
  9.         rows[i][0] = (char*) calloc( 20, sizeof(char));
  10.     }
  11. }
  12. else
  13. {
  14.     for(int i = 0 ; i < argc; i++ )
  15.     {
  16.         rows[i] = (char ** ) realloc(rows[i],(record_count+1) * sizeof(char * )) ;
  17.         rows[i][record_count] = (char*)calloc(20, sizeof(char));
  18.     }
  19. }

Más o menos quedaría así... esto suponiendo una longitud máxima de 19 caracteres para cada elemento de la tabla.

Y luego para almacenar los datos

Código C++:
Ver original
  1. for(i=0;i<argc;i++)
  2. {
  3.    strcpy( rows[i][record_count], argv[i]);
  4. }

Espero no haber metido la pata en el código.