Comment allouer de l'espace pour une structure dans la programmation de c

Lorsque la fonction malloc () dans la programmation C a besoin d'exercice, il se tourne vers la structure - une seule structure après l'autre, chacun d'entre eux assis dans un nouveau spot dans la mémoire, grâce à malloc (). Est-ce qu'ils se perdent? Non! Parce que chaque structure conserve la trace de la structure suivante comme les maillons d'une chaîne.

La fonction malloc () met de côté la place pour tous les types de variable C, y compris les tableaux. Il peut aussi presser une structure en mémoire, ce qui rend une belle petite poche pour la chose, toutes référencées à partir d'un pointeur.

Lorsque vous le stockage de mode pour une nouvelle structure en utilisant un pointeur, ou à tout moment vous référencez une structure en utilisant un pointeur, un nouvel opérateur de C entre en jeu: la -> chose, qui est officiellement connu sous le nom Structure opérateur de pointeur. Cet opérateur est l'équivalent structure pointeur de la dot. Alors que la notation de membre de la structure traditionnelle ressemble à ceci:

date.day = 14-

le même membre lorsque référencé par un pointeur de la structure ressemble à ceci:




date-> = 14- jour

Pourquoi notation Peeker pas le * est utilisé? Eh bien, il pourrait être. Le format d'origine pour un élément de structure de référence à partir d'un pointeur est la suivante:

(* date) .j = 14-

Les parenthèses sont nécessaires afin de lier l'opérateur * pointeur à ce jour, la variable structure de pointeur Nom contraire, le. exploitant aurait préséance. Mais pour une raison quelconque, les programmeurs primitives C détestaient ce format, alors ils sont allés avec -> place.

Création d'un portefeuille structuré montre comment une structure peut être créée en utilisant la fonction malloc (). La structure est définie à la ligne 7, et une variable de pointeur de ce type de structure est déclaré à la ligne 12. Dans la ligne 15, malloc () alloue assez de stockage pour une structure. La taille de la structure est déterminée à l'aide de l'opérateur sizeof.

CRÉATION D'UN portfolio structuré

#include #include #include int main () {struct stock {symbole de char [5] prix -int quantité flottant -} - struct stock * investir - / * Création d'une structure en mémoire * / investir = (struct stock *) malloc ( sizeof (struct stock)) - si (investir == NULL) {puts ("Une sorte de malloc () erreur") - sortie (1) -} / * Affectation structure de données * / strcpy (investissement> symbole "GOOG ") -invest-> quantité = 100-investissement> prix = 801,19 - / * Base de données d'affichage * / puts (" Investissement Portfolio")-printf("SymboltSharestPricetValuen")-printf("%-6st%5dt%.2ft%.2fn",invest->symbol,invest->quantity,invest->price,invest->quantity*invest->price)-return(0)-}

Invest références de pointeur de la nouvelle structure creusée dans la mémoire. Les lignes 23 à 25 de remplissage avec la structure des données. Alors les lignes 28 à 34 afficher les données. Observez bien que l'opérateur -> est utilisé pour référencer les membres de la structure.

Exercice 1: Créez un nouveau projet en utilisant le code source de Création d'un portefeuille structuré. Construire et exécuter.


» » » » Comment allouer de l'espace pour une structure dans la programmation de c