Bonjour,
J'ai sous les yeux un petit programme qui m'a aide a mieux comprendre le principe des pointeurs, en utilisant gdb. Je tiens simplement a vous en faire part, car je trouve cet exemple tres interressant.
En esperant que ceci aidera certain.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 guillaume@ubuntu:~/C_code$ gdb -q ./a.out Reading symbols from /home/guillaume/C_code/a.out...done. (gdb) list 1 #include <stdio.h> 2 3 int main(void) { 4 int ma_var = 5; // mettre la valeur 5 dans ma varaible. 5 int *mon_ptr; // reserver 4 octets en memoire 6 7 mon_ptr = &ma_var; // mettre l'adresse de ma_var dans mon_pointeur 8 return 0; 9 } (gdb) break 8 Breakpoint 1 at 0x80483a7: file addressof.c, line 8. (gdb) run Starting program: /home/guillaume/C_code/a.out Breakpoint 1, main () at addressof.c:8 8 return 0; (gdb) print ma_var // Que contient donc ma_var? $1 = 5 (gdb) print &ma_var // Ou se trouve ma_var en memoire? $2 = (int *) 0xbffff3c4 // a cette adresse (gdb) print mon_ptr $3 = (int *) 0xbffff3c4 // Que contient mon_ptr -> l'adresse de ma_var (gdb) print &mon_ptr // ou se trouve mon_ptr $4 = (int **) 0xbffff3c0 // pas la meme adresse memoire (gdb) print *mon_ptr // Que montre du doigt mon_ptr $5 = 5 // la valeur de ma_var (gdb)
Partager