Comment vérifier si les structures sont initialisées ou non

typedef struct dict_pair {
  void *key;
  void *value;
  struct dict_pair *head;
  struct dict_pair *tail;
} dict;

dict* NewDictionary(void) {
  dict *dictionary = malloc(sizeof(dict_pair));
  dictionary->head = null;
  dictionary->tail = null;
}

int main(void) {
  dict *dictionary = NewDictionary();
}

J'avais initialement prévu de définir les structures comme nulle, mais le compilateur ne le permet pas. Comment puis-je vérifier si une structure est affecté ou pas?

Aussi, puis-je consulter de manière récursive déclarer la même structure à l'intérieur de la structure?

Utilisation NULL au lieu de null. null ne fait pas partie de la C.
écrire une réponse, je veux vous donner des accessoires pour elle.
Attendez... le problème, c'est que "null" n'a pas été reconnu? alors oui, la réponse est d'utiliser la valeur "NULL" à la place. Ou 0, si la valeur est NULL arrive pas à être définis dans votre environnement de dev, ce qui est rare de nos jours, mais toujours possible.
Quel problème essayez-vous de résoudre? Il semble que votre NewDictionary() fonction déjà les valeurs Null de votre tête et de la queue des pointeurs. N'est-ce pas de la vérification de ces assez?
juste une suggestion. Ne pas accepter la première réponse que vous regardez, de donner aux gens le temps d'écrire un coomprehensive réponse. Juste d'être récompensé pour avoir été le plus rapide à répondre ne va pas améliorer la qualité globale de réponses.

OriginalL'auteur nubela | 2009-11-18