Supprimer un case du tableau en langage C
olfachokri
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Dans mon prog,j'ai besoin de supprimer un case du tableau en langage C ; En fait,j'ai un tableau de structure (des noeuds) et je veux supprimer le noeud dont son indice =i tout en décalant les autres noeuds du tableau bien sure après avoir supprimer et renvoyant la nouvelle taille du tableau
Please aidez moi à trouver une solution, comment il faut procéder !!??
Dans mon prog,j'ai besoin de supprimer un case du tableau en langage C ; En fait,j'ai un tableau de structure (des noeuds) et je veux supprimer le noeud dont son indice =i tout en décalant les autres noeuds du tableau bien sure après avoir supprimer et renvoyant la nouvelle taille du tableau
Please aidez moi à trouver une solution, comment il faut procéder !!??
A voir également:
- Supprimer une case d'un tableau en c
- Supprimer rond bleu whatsapp - Guide
- Tableau word - Guide
- Supprimer une page word - Guide
- Trier un tableau excel - Guide
- Tableau ascii - Guide
2 réponses
Bonjour,
Il faut procéder comme tu as dit.
Par contre, il faut juste prendre conscience qu'on ne "supprime" pas une case d'un tableau : la case est toujours là, c'est juste que son contenu n'a plus de sens.
Du coup, pour "supprimer" la case i tu dois simplement recopier la case i+1 dans la case i, la case i+2 dans la case i+1, etc. jusqu'à la fin du tableau, dont tu considéreras la taille diminuée de 1 à l'issue de ton opération de suppression.
A noter que cette suppression prend du temps, puisqu'il faut recopier tout ce qui est après la case supprimée.
Une autre possibilité est d'ajouter un booléen par case, qui précise si le contenu est valide ou non.
Il faut procéder comme tu as dit.
Par contre, il faut juste prendre conscience qu'on ne "supprime" pas une case d'un tableau : la case est toujours là, c'est juste que son contenu n'a plus de sens.
Du coup, pour "supprimer" la case i tu dois simplement recopier la case i+1 dans la case i, la case i+2 dans la case i+1, etc. jusqu'à la fin du tableau, dont tu considéreras la taille diminuée de 1 à l'issue de ton opération de suppression.
A noter que cette suppression prend du temps, puisqu'il faut recopier tout ce qui est après la case supprimée.
Une autre possibilité est d'ajouter un booléen par case, qui précise si le contenu est valide ou non.
Bonjour,
Impossible de supprimer la case d'un tableau.
Une autre possibilité serait d'utiliser un pointeur sur une zone allouée (appelé injustement tableau dynamique). Dans, ce cas, tu pourras faire un realloc() pour rétrécir la taille.
Au vu du besoin, je pense que ce n'est pas le plus adapté. Pourquoi ne pas utiliser une liste doublement chainée ? La suppression se fera en un claquement de doigt.
Impossible de supprimer la case d'un tableau.
Une autre possibilité serait d'utiliser un pointeur sur une zone allouée (appelé injustement tableau dynamique). Dans, ce cas, tu pourras faire un realloc() pour rétrécir la taille.
Au vu du besoin, je pense que ce n'est pas le plus adapté. Pourquoi ne pas utiliser une liste doublement chainée ? La suppression se fera en un claquement de doigt.