Deux options me viennent à l'esprit. La première consiste à créer un membre source avec les spécifications d pour les attributs de chien et au lieu d'utiliser likeds (chien), avoir une/copie après chaque structure de données qui utilisera cette définition de sous-champ. À mon avis, cela peut donner lieu à un code bâclé et rendre les choses difficiles à analyser par la suite. D'un autre côté, si vous utilisez cette même structure de données dans plusieurs programmes, il y a des avantages.
La deuxième option qui vient à l'esprit est d'utiliser le mot-clé Based() sur la structure de données de chien, puis de définir un champ pointeur. Le champ pointeur prendra de la mémoire, mais la structure de données du chien n'occupera aucune mémoire tant que votre programme ne l'aura pas alloué. Le mot clé Based() ne s'applique pas à d'autres structures de données définies avec LikeDS(). Ainsi, vous avez défini votre structure de données dans votre source de programme. Vous n'avez pas besoin d'allouer de la mémoire pour cela et vous n'avez pas besoin de définir votre pointeur sur une valeur quelconque. Il est par défaut Null. Faites juste attention à ne pas accéder à la structure de données du chien dans votre code. Vous obtiendrez une erreur de pointeur qui ressemble à si votre programme a été appelé sans paramètre requis.
Ok, merci Mike. –