13

Points importants de la semaine Les allocations programmées de mémoire. Les enregistrements

Embed Size (px)

Citation preview

Page 1: Points importants de la semaine Les allocations programmées de mémoire. Les enregistrements
Page 2: Points importants de la semaine Les allocations programmées de mémoire. Les enregistrements

Points importants de la semaine

Les allocations programmées de mémoire.

Les enregistrements.

Page 3: Points importants de la semaine Les allocations programmées de mémoire. Les enregistrements

Rappel : les allocationsprogrammées

Comment réalise-t-on une allocation programmée en C ?

Réponse :

À l’aide de la fonction malloc (ou encore des fonctions calloc ou realloc).

Page 4: Points importants de la semaine Les allocations programmées de mémoire. Les enregistrements

Rappel : les allocationsprogrammées

Suite à une allocation programmée, à quoi faut-il être très attentif ?

Réponse :

Il faut prendre grand soin de ne pas perdre l’adresse du bloc alloué. Sinon, il se produit ce que l’on nomme une « fuite de mémoire » et le bloc alloué ne sera libéré qu’à la fin du programme.

Page 5: Points importants de la semaine Les allocations programmées de mémoire. Les enregistrements

Rappel : les allocationsprogrammées

Comment libère-t-on un bloc de mémoire alloué par allocation programmée en C ?

Réponse :

À l’aide de la fonction free.

Page 6: Points importants de la semaine Les allocations programmées de mémoire. Les enregistrements

Rappel : les allocationsprogrammées

Vrai ou faux : Le nombre d’allocation programmée de mémoire dans un programme doit toujours être supérieur ou égal au nombre de libération.

Réponse :

Faux.

Il doit toujours être égal au nombre de libération.

Page 7: Points importants de la semaine Les allocations programmées de mémoire. Les enregistrements

Rappel : les enregistrements

Réponse :Un enregistrement (ou struct en C) est un type de données qui correspond à l’agrégat d’un ou plusieurs types de données.

Qu’est-ce qu’un enregistrement ?

Page 8: Points importants de la semaine Les allocations programmées de mémoire. Les enregistrements

Rappel : les enregistrements

Réponse :•Les éléments d’un tableau doivent tous être de même type.•Les opérations permises sur un enregistrement ne sont pas les mêmes que sur un tableau.

Qu’est-ce qui différencie un tableau d’un enregistrement ?

Page 9: Points importants de la semaine Les allocations programmées de mémoire. Les enregistrements

Rappel : les enregistrements

Réponse :typedef struct

{

int jour, mois, annee;

} t_date;

Comment ferait-on pour définir un enregistrement t_date comportant les champs jour, mois et année ?

Page 10: Points importants de la semaine Les allocations programmées de mémoire. Les enregistrements

Rappel : les enregistrements

Réponse :

. : Pour accéder à un champs.

= : L’opérateur d’assignation.

sizeof() : La taille en octets.

& : L’adresse en mémoire.

En C, quels sont les 4 opérateurs qui acceptent un enregistrement comme opérande ?

Page 11: Points importants de la semaine Les allocations programmées de mémoire. Les enregistrements

Rappel : les enregistrements

Réponse :

(*ptr).nom

En supposant que l’expression suivante soit syntaxiquement correcte

ptr->nom

Réécrivez cette expression sans utiliser l’opérateur ->.

Page 12: Points importants de la semaine Les allocations programmées de mémoire. Les enregistrements

Rappel : les enregistrements

Réponse :

Lorsque l’enregistrement conserve l’adresse d’un bloc de mémoire alloué par allocation programmée. Cela risque de causer des fuites de mémoires ou encore une copie superficielle (« shallow copy »).

Quand l’utilisation de l’opérateur = pour copier un enregistrement comporte-t-elle des risques ?

Page 13: Points importants de la semaine Les allocations programmées de mémoire. Les enregistrements

Maintenant, place à la partie pratique!

C’est tout pour la partie théorique de la semaine # 10.