Renvoyer une structure nulle en C

Fermé
Yakurena - 3 nov. 2004 à 21:15
 Guki - 4 nov. 2004 à 01:37
Bonsoir,
j'ai fait une fonction en C retournant un type structure ; cette fonction a en paramètre un tableau de types structure et recherche un élement de ce tableau répondant à certains critères. Si cet élément est trouvé,il est renvoyé; si aucun élement n'a été trouvé ,il faudrait renvoyer une "structure nulle" (à l'image de NULL pour les types pointeurs) mais quelle est la syntaxe à utiliser pour cela?
Merci d'avance.

2 réponses

Salut!

Au hasard...

/* prototype1 */

int mafonction(struct structure *nom[]);


Je pense que ça doit pouvoir faire l'affaire ou bien encore...

/* prototype2 */

int mafonction(struct structure **nom);


Bien entendu avant d'utiliser la fonction il faudra définir ce tableau de structures.

/* definition */

int mafonction(struct structure *nom[])
{
	int i;
	int n;

	n = 4;
	for(i = 0; i < n; i++)
	{
		if(nom[i]->element == 15)
		{
			(nom[i]->element)++;
		}
	}
}


Voilà un exemple dont tu pourrais t'inspirer. :-)
0
Oui,mais ma fonction doit renvoyer un type structure et non un entier comme dans ton exemple. Le problème est de renvoyer une structure nulle.
Ca doit etre une fonction ressemblant à :

structure mafonction(struct structure *nom[])
{
int i;
int n;
n = 4;
for(i = 0 ;i < 4 ; i++)
{
if(nom[i]->element == 15)
{ return nom[i]; }
}
/* si aucun element égal à 15 n'a été trouvé,il faut renvoyer une structure nulle */
return ??? ; (comment retourner une structure nulle?)
}
0
Le plus simple à mon avis c'est de faire un typedef de ta structure.
0
Une structure nulle tu veux plutot dire un pointeur NULL sur une structure non? Ou sur ton nouveau type structure.
0