[C con Clase] probleimllas con una lista...

duna.montero en ldasistencia.com duna.montero en ldasistencia.com
Mie Mayo 30 11:58:08 CEST 2007





Hola.
Twngo problemas cuando intento añadir datos a una lista dinámica.
Hago consulta a una base de datos mysql y me da el número de resultados que
tendrá la lista, pero cuando intento añadir el 2º registro me da error.
Os paso el código por si se os ocurre algo.
Otra pregunta es que cuando hago el malloc, tengo que añadir un resgistro
más para que -> next sea nulo?

Gracias.

                        i = (int) mysql_num_rows(res);
                        j = (int) mysql_num_fields(res);

                        printf ("\nEl número de resultados es: %d\n", i);

                        columna = mysql_fetch_fields(res);

                        l=1;
                        if (i!=0)
                        {
                        consulta1= (uno_l *)malloc ((i+1) * sizeof
(uno_l));
                        uno=consulta1;
                        for(l = 0; l < i; l++)
                        {
                                row = mysql_fetch_row(res);
                                lon = mysql_fetch_lengths(res);

                                printf ( "Registro no. %d", l+1);
                                // Mostrar cada campo y su longitud:
                                k=0;

                                consulta1->cl = atoi(row[k]);
                                printf ("\n%d", consulta1->cl);
                                printf (" ");
                                k++;

                                consulta1->volumen = atoi (row[k]);
                                printf ("\n%d", consulta1->volumen);
                                printf (" ");
                                k++;

                                consulta1->titulo = row[k];
                                printf ("\n%s", consulta1->titulo);
                                printf (" ");
                                k++;

                                consulta1->notas = row[k];
                                printf ("\n%s", consulta1->notas);
                                printf (" ");
                                k++;

                                consulta1->anno = atoi (row[k]);
                                printf ("\n%d", consulta1->anno);
                                printf (" ");
                                k++;

                                consulta1->ce = atoi (row[k]);
                                printf ("\n%d", consulta1->ce);
                                printf (" ");
                                k++;

                                consulta1->serie = atoi (row[k]);
                                printf ("\n%d", consulta1->serie);
                                printf (" ");
                                k++;

                                consulta1->edicion = atoi (row[k]);
                                printf ("\n%d", consulta1->edicion);
                                printf (" ");

                                consulta1=consulta1->next;



                        }





Más información sobre la lista de distribución Cconclase