Comment faire un tableau de structures en c

Comment faire un tableau de structures en c
Nous comprendrons d'abord les structures en C, puis nous discuterons de la gamme de structures en C. Nous allons également passer par le tableau des pointeurs de structure et comment accéder aux membres de la structure dans la gamme d'objets de structure.

Les structures sont le groupe défini par l'utilisateur de types de données similaires ou différents. Un groupe similaire ou différent de types de données peut être regroupé sous un seul nom appelé structure. Exemple de déclaration de structure en C:

Struct abc
Int a;
Char B;
Float C;
;

Pour créer un objet à partir de la déclaration de structure, voici la syntaxe en C pour le faire:

Struct abc obj;

Avec cette création d'objet, la mémoire est affectée à la structure. Pour accéder au membre des structures à l'aide de l'objet (OBJ) peut être fait comme:

Obj.a = 10; obj.b = 'c'; obj.c = 1.0;

C'est le cas lorsque l'objet est créé, il n'est pas nécessaire d'allouer une mémoire. Une fois l'objet.

L'allocation de la mémoire à la structure peut être effectuée au moment de l'exécution. Pour l'allocation d'exécution, la fonction malloc peut être utilisée.

Il y aura une déclaration de pointeur vers la structure. La déclaration du pointeur vers la structure peut être effectuée sous forme de struct abc * ptr; Avec cette déclaration, il n'y aura pas d'attribution de mémoire à l'objet de structure. La fonction malloc doit être utilisée pour allouer la mémoire et ci-dessous est la syntaxe pour le faire:

Struct abc * ptr;
ptr = malloc (sizeof (struct abc));

Maintenant, PTR fera attribuer la mémoire. Il peut stocker les données des éléments de la structure des membres.

Pour accéder à la structure, les membres à l'aide de pointeurs peuvent être faits comme suit:

Ptr-> a = 10; ptr-> b = 'c'; ptr-> c = 2.0;

Jusqu'à présent, nous avons discuté de l'objet à structure unique. Les deux voies d'accès des éléments des membres, nous avons vu à travers les pointeurs et l'accès direct avec des objets.

Nous avons deux façons de définir les structures, c'est d'abord de définir l'objet de structure et une autre façon est de définir le pointeur vers la structure.

Objet de structure: struct abc obj;
Pointeur de structure: struct abc * ptr;

Maintenant, discutons de la gamme d'objets de structure et du tableau de pointeurs de structure. Le tableau est un groupe d'objets de même type. Par exemple, le tableau d'OBJ sera déclaré Struct ABC OBJ [128]. Le tableau de pointeurs vers les objets de structure sera comme struct abc * ptr [128]. Les deux réseaux ont défini les 128 éléments des objets de structure et des pointeurs.

C Programme pour déclarer l'objet de structure:

#inclure
struct abc
int a;
Char B;
Float C;
;
int main()

struct abc obj = 1, 'c', 3.4;
printf ("a =% d, b =% c, c =% f \ n", obj.A, obj.B, obj.c);
retour 0;

Sortir:

bash-4.2 $ ./un.dehors
a = 1, b = c, c = 3.400000
bash-4.2 $

Le programme ci-dessus définit l'objet de structure et un moyen d'initialiser le membre tout en déclarant l'objet. Nous initialisons les variables membre avec des valeurs spécifiques et imprimons ces variables en accédant aux membres avec un objet directement. A est attribué avec 1, b est attribué avec «C» et C est attribué avec la valeur du flotteur 3.4. Vous trouverez ci-dessous l'instantané du programme et de la sortie.

Instantané:

C Programme pour déclarer le pointeur vers la structure:

#inclure
struct abc
int a;
Char B;
Float C;
;
int main()

struct abc * ptr;
ptr = malloc (sizeof (struct abc));
ptr-> a = 4;
ptr-> b = 'd';
ptr-> c = 5.5;
printf ("a =% d, b =% c, c =% f \ n", ptr-> a, ptr-> b, ptr-> c);
retour 0;

Sortir:

bash-4.2 $ ./un.dehors
a = 4, b = d, c = 5.500000
bash-4.2 $

Le programme ci-dessus définit le pointeur vers l'objet de structure. La fonction malloc est utilisée pour allouer la mémoire à la variable du pointeur. Nous initialisons les variables membre avec des valeurs spécifiques et imprimons ces variables en accédant aux membres avec Pointer. A est attribué avec 4, b est attribué avec «D» et C est attribué avec la valeur du flotteur 5.5. Vous trouverez ci-dessous l'instantané du programme et de la sortie.

Instantané:

Maintenant, passons par le programme C pour une gamme de structures et un tableau de pointeurs vers les structures.

C Programme pour le tableau de la structure des objets:

#inclure
struct abc
int a;
Char B;
Float C;
;
int main()

struct abcobj [2];
obj [0].a = 4;
obj [0].b = 'd';
obj [0].c = 5.5;
obj [1].a = 5;
obj [1].b = 'f';
obj [1].c = 8.2;
printf ("[0] a =% d, [0] b =% c, [0] c =% f \ n", obj [0].A, obj [0].B, obj [0].c);
printf ("[1] a =% d, [1] b =% c, [1] c =% f \ n", obj [1].A, obj [1].B, obj [1].c);
retour 0;

Sortir:

bash-4.2 $ ./un.dehors
[0] a = 4, [0] b = d, [0] c = 5.500000
[1] a = 5, [1] b = f, [1] c = 8.200000
bash-4.2 $

Le programme ci-dessus définit le tableau d'objet de structure et un moyen d'initialiser les membres à l'aide d'objets. Nous initialisons les variables membre avec des valeurs spécifiques et imprimons ces variables en accédant aux membres avec un objet directement. Pour plus de simplicité, nous n'avons pris que 2 objets. Le premier objet a est attribué avec 4, b est attribué avec «D» et C est attribué avec la valeur du flotteur 5.5. Le deuxième objet a est affecté avec 5, b est attribué avec «F» et C est attribué avec la valeur du flotteur 8.2. Vous trouverez ci-dessous l'instantané du programme et de la sortie.

Instantané:

C Programme pour la gamme de pointeurs vers la structure des objets:

#inclure
struct abc
int a;
Char B;
Float C;
;
int main()

struct abc * ptr [2];
ptr [0] = malloc (sizeof (struct abc));
ptr [1] = malloc (sizeof (struct abc));
ptr [0] -> a = 4;
ptr [0] -> b = 'd';
ptr [0] -> c = 5.5;
ptr [1] -> a = 5;
ptr [1] -> b = 'f';
ptr [1] -> c = 8.2;
printf ("[0] a =% d, [0] b =% c, [0] c =% f \ n", ptr [0] -> a, ptr [0] -> b, ptr [0] -> c);
printf ("[1] a =% d, [1] b =% c, [1] c =% f \ n", ptr [1] -> a, ptr [1] -> b, ptr [1] -> c);
retour 0;

Sortir:

bash-4.2 $ ./un.dehors
[0] a = 4, [0] b = d, [0] c = 5.500000
[1] a = 5, [1] b = f, [1] c = 8.200000
bash-4.2 $

Le programme ci-dessus définit le tableau des pointeurs vers l'objet de structure et un moyen d'initialiser les membres à l'aide de pointeurs. Nous initialisons les variables membre avec des valeurs spécifiques et imprimons ces variables en accédant aux membres avec des variables de pointeur. Pour plus de simplicité, nous n'avons pris que 2 pointeurs. Le premier pointeur vers l'objet A est attribué avec 4, B est attribué avec «D» et C est attribué avec la valeur du flotteur 5.5. Le deuxième pointeur vers l'objet A est attribué avec 5, B est attribué avec «F» et C est attribué avec une valeur de flotteur 8.2. Vous trouverez ci-dessous l'instantané du programme et de la sortie.

Instantanés:

Conclusion:

Nous avons discuté du type de données de structure en C et des moyens de déclarer les objets et les pointeurs pour structurer les objets. Nous avons également discuté de quelques exemples et avec la sortie. Les objets et les pointeurs ont été discutés. La table d'objets et le pointeur vers les objets ont également été discutés avec des exemples.