Skip to content
Snippets Groups Projects
Commit 1dbca3d1 authored by orestis.malaspin's avatar orestis.malaspin
Browse files

added pointer images

parent 3b5420ed
No related branches found
No related tags found
No related merge requests found
......@@ -58,6 +58,9 @@
num->im = -1.0; // mémoire pas allouée.
```
![La représentation mémoire de `complex_t`.](figs/pointer_struct.svg){#fig:compilation width=100%}
# Allocation dynamique de mémoire (1/N)
- La fonction `malloc`{.C} permet d'allouer dynamiquement (pendant l'exécution du programme) une zone de mémoire contiguë.
......@@ -80,7 +83,9 @@
```
- La zone mémoire **n'est pas** initialisée.
- La mémoire doit être désallouée explicitement $\Rightarrow$ **fuites mémoires**.
- Toujours garder un pointeur sur la mémoire allouée sinon **pointeur pendouillant**.
<!-- - Toujours garder un pointeur sur la mémoire allouée sinon **pointeur pendouillant**. -->
![La représentation mémoire de `complex_t` et fuites.](figs/pointer_struct_ok.svg){#fig:compilation width=100%}
# Allocation dynamique de mémoire (3/N)
......@@ -114,17 +119,24 @@
## Arithmétique de pointeurs
- Autre façon d'indéxer un tableau
- On peut parcourir la mémoire différemment qu'avec l'indexation
```C
int *p = malloc(50 * sizeof(int)); // initialize somehow
int *p = malloc(50 * sizeof(int));
// initialize somehow
double a = p[7];
double b = *(p + 7); // on avance de 7 "double"
p[0] == *p; // rappel, le pointeur est le premier élément
p[0] == *p; // le pointeur est le premier élément
```
# Allocation dynamique de mémoire (5/N)
## Arithmétique de pointeurs
![L'arithmétique des pointeurs.](figs/pointer_arithmetics.svg){#fig:compilation width=100%}
# Allocation dynamique de mémoire (6/N)
## Pointeur de pointeur
- Tout comme une valeur a une adresse, un pointeur a lui-même une adresse:
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment