J'ai cette structure et je pensais pouvoir définir la condition si la structure pointe vers une valeur NULL.Looping à travers un tableau de structures
Voici ma structure simple pour cet exemple:
typedef struct
{
char *name;
char *data;
} details_t;
details_t emp_details [] =
{
{ "peter", "lawyer" },
{ "john", NULL }, /* No data for john */
{ NULL, NULL }, /* Indicates last element in the array */
};
Je pense que je devrais augmenter le tableau emp_details et déréférencement le pointeur pour voir si elle contient une valeur NULL dans le premier élément de tableau. Mais je ne sais pas si je vais dans la bonne direction.
for(i=i; *emp_details; i++)
{
printf("Name: [ %s ] [ %s ]\n", emp_details[i].name, emp_details[i].data);
}
Puis-je suggérer d'utiliser '->' au lieu de '(*) .'? – mouviciel
En plus de l'utilisation de '->' au lieu de '(*) .', n'oubliez pas de vérifier' it-> data! = NULL' avant d'essayer de l'utiliser. Sinon, "john" pourrait bien provoquer 'printf()' (ou quelque chose d'autre). –
@Chris Jefferson Une raison pour laquelle 'int size_of_array = sizeof (emp_details)/sizeof (details_t);' fragile? une expérience personnelle que vous voulez partager? –