Ver Mensaje Individual
  #3 (permalink)  
Antiguo 21/10/2014, 07:44
luvac
 
Fecha de Ingreso: febrero-2008
Mensajes: 8
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: realloc array 3 dimensiones char

No entiendo?,argv[i] es un array de 2 dimensiones tipo char y cada vez que entra a la funcion argv trae nuevos datos,record_count se incrementa cada vez que sale entonces la primera vez vale 0 y va de 0 al 1,entonces solo agrega 1 elemento a la lista de row cuando termina incrementa en 1 y asi susesivamente creo que no puse el codigo completo lo anexo aqui:

Código:
 int Tadquery::callback(int argc, char **argv, char **azColName){
int i,j,h;
h=0;
char *s;

    if (record_count==0)
    {
        arr_number=argc;
        Col_name=azColName;
        rows=(char *** )calloc(argc, sizeof(char ** )) ;
        for(int i = 0 ; i < argc; i++ )
        {
            rows[i] = (char ** ) calloc(1,sizeof(char * )) ;
        }

    }
    else{

        for(int i = 0 ; i < argc; i++ )
        {
            rows[i] = (char ** ) realloc(rows[i],(record_count+1) * sizeof(char * )) ;
        }
    }

 for(i=0;i<argc;i++)
 {
   for(j=record_count; j<(record_count+1) ; j++ )
   {
     s=argv[i];//esto no lo tomes en cuenta solo lo hize para saber que datos traia
     rows[i][j]=argv[i];
   }
 }
system("cls");
 for(i=0;i<argc;i++)
 {
 for(j =0 ; j < (record_count+1) ; j++ )
 {
  printf("%s \n",rows[i][j]);
 }
 }

record_count++;
return 0;
}
Una disculpa

Última edición por luvac; 21/10/2014 a las 07:53