[gcc] ansi c - liste chainees - liste de chaines de caracteres [strarray2]

Soyez le premier à donner votre avis sur cette source.

Vue 7 297 fois - Téléchargée 523 fois

Description

Ce code montre le fonctionnement des listes chaînées : ici, il s'agit d'un moyen de gérer des listes (tableaux) de chaines de caractères.
Tout est dans le zip.
Ci-dessous, uniquement le code de l'exemple fourni.

Source / Exemple :


#include "strarray.h"

int main(void)
{
	PSTA tableau;
	PSTA parcours;
	int i;

	/* initialise la liste de chaines de caractères */	
	tableau = sta_Init();
	/* ajoute un élément en début de liste */
	tableau = sta_AddFirst(tableau, "premier élément.");
	/* ajoute un élément en fin de liste */
	tableau = sta_AddLast(tableau, "deuxième élément.");
	/* ajoute un élément en début de liste */
	tableau = sta_AddFirst(tableau, "troisième élément.");
	
	/* parcours la liste et affiche son contenu */
	for(parcours=tableau;parcours!=NULL;parcours=parcours->next)
		printf("%s\n", parcours->string);
		
	printf("---\n");
	
	/* supprime le premier élément de la lsite (d'index 0) */
	tableau = sta_DeleteItem(tableau, 0);
	/* parcours la liste et affiche son contenu d'une autre façon */
	for(i=0; i<(sta_Count(tableau)); i++)
		printf("%d %s\n", i, sta_GetItem(tableau, i));
	return 0;
}

Conclusion :


Pour compiler et installer l'exemple :
./configure
make
make install

Désinstallation :
make uninstall

Testé sous RedHat et Cygwin...

Disponible pour toute question...

Codes Sources

A voir également

Ajouter un commentaire

Commentaire

Messages postés
1138
Date d'inscription
mardi 10 juin 2003
Statut
Membre
Dernière intervention
25 janvier 2009
3
J'ai remarquer que des tu faisait des mallocs, tu testait sa valeur de retour, cela est bien, mais ce qui serait encore miux serait de faire :
void *TheMalloc(size_t size)
{
void *p;
if((p=malloc(size)) == NULL)
{
error_malloc();
}
return p;
}

Comme ceci tu a juste a faire TheMalloc, sans de soucir de l'erreur
qui sera deja traiter par error_Malloc
De plus ton code sera plus court, et plus lisible.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.