• [^] # Re: g_array_index

    Posté par . En réponse au message Galère de pointeurs avec les GArrays. Évalué à 2.

    on avance, j'ai l'impression que à mal lu mon premier commentaire, qu'est-ce que t'obtiens dans le cas :
    struct iphdr *iph2;
    iph2 = & g_array_index(P_to_Array, struct iphdr, i);

    je pense que c'est ce cas là qui devrait marcher... et je vais t'expliquer pourquoi...

    g_array_index est défini par :
    #define g_array_index(a,t,i) (((t*) (a)->data) [(i)])

    remarque ce qu'il fait... il cast a->data en t* !!!!

    Or, toi tu lui dis de faire un cast en struct iphdr **, ce qui est faux je pense. Si j'ai raison, ça ne devrait marcher que pour le premier index, pour les autres ça devrait induire un décalage des données.
    Or chez toi tu obtiens le bon résultat pour le premier index, pas pour les autres. Ce qui semble comfirmer mon hypothèse.
    Essaie donc et dis moi si ça corrige quelquechose...