Renvoyer une structure nulle en C

Yakurena -  
 Guki -
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

Guki
 
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
Yakurena
 
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
Guki
 
Le plus simple à mon avis c'est de faire un typedef de ta structure.
0
Guki
 
Une structure nulle tu veux plutot dire un pointeur NULL sur une structure non? Ou sur ton nouveau type structure.
0