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

Post on 04-Apr-2015

110 views 0 download

Transcript of 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.

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).

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.

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.

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.

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 ?

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 ?

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 ?

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 ?

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 ->.

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 ?

Maintenant, place à la partie pratique!

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