IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Index du forum

Recherche:

Type: Messages; Utilisateur: kwariz

Recherche: Recherche effectuée en 0,01 secondes.

  1. Votes reçus
    +0 -0
    Réponses
    21
    Affichages
    1 295

    Une erreur s'est glissée dans mon destroy ... il...

    Une erreur s'est glissée dans mon destroy ... il ne faut pas oublier de libérer chaque chaine!



    for(i=0;i<0;i++)
    free(t->table[i]);


    Désolé !
  2. Votes reçus
    +1 -0
    Réponses
    21
    Affichages
    1 295

    Si on reprend ta structure : typedef struct...

    Si on reprend ta structure :


    typedef struct
    {
    char **table;
    int len;
    } tab;
  3. Votes reçus
    +0 -0
    Réponses
    21
    Affichages
    1 295

    void ajouter(tab *tableau, char *ligne) { ...

    void ajouter(tab *tableau, char *ligne)
    {
    tableau->table[tableau->len] = malloc((strlen(ligne)+1) * sizeof(char)); /* Allocation mémoire */
    strcpy(tableau->table[tableau->len], ligne);
    ...
  4. Votes reçus
    +0 -0
    Réponses
    21
    Affichages
    1 295

    Il ne faut faire un free que si tu as fait un...

    Il ne faut faire un free que si tu as fait un malloc avant (ou pour certaines fonctions qui le font pour toi comme strdup).
    Faire un free sur un espace mémoire non alloué n'est pas une bonne idée....
  5. Votes reçus
    +0 -0
    Réponses
    21
    Affichages
    1 295

    Où et quand l'as-tu alloué ?

    Où et quand l'as-tu alloué ?
  6. Votes reçus
    +1 -0
    Réponses
    21
    Affichages
    1 295

    strlen ne compte pas le '\0', mais tu dois...

    strlen ne compte pas le '\0', mais tu dois allouer de l'espace pour lui car strcpy l'utilises, d'où le +1 pour lui réserver de la place.
    strdup fait le boulot pour toi ;)
    plus secure -> utilise...
  7. Votes reçus
    +0 -0
    Réponses
    21
    Affichages
    1 295

    Deux erreurs en gras : la première tu oublies le...

    Deux erreurs en gras :
    la première tu oublies le 0 terminal (classique :)) La chaine "bonjour" est de longueur 7 mais prend 8 octets {'b','o','n','j','o','u','r',0} -> il faut toujours réserver...
  8. Votes reçus
    +0 -0
    Réponses
    21
    Affichages
    1 295

    Hum, je pense que tu te représentes mal les...

    Hum, je pense que tu te représentes mal les choses. Un tab a une longueur constante la taille d'un entier plus la taille d'un pointeur ; len est bien le nombre de chaine contenue dans table.
    À moins...
  9. Votes reçus
    +0 -0
    Réponses
    21
    Affichages
    1 295

    Salut, partons de ta structure : #ifndef...

    Salut,

    partons de ta structure :


    #ifndef TEST_H_INCLUDED
    #define TEST_H_INCLUDED


    typedef struct tab
Affichage des résultats 1 à 9 sur 9