Upload
gustave-mathis
View
110
Download
0
Embed Size (px)
Citation preview
Introduction
Les pointeursBête noir des programmeurs
Pas d’aide de Visual Studio Sauf en utilisant les « break point »
Pas toujours intuitifFacile de s’embrouiller
Pourtant, le concept est simple…
Organisation du coursCours : Présentation du principe
TP : Mise en pratique sur un exemple simpleCours : Les listes chainées
TP : Mise en pratiqueCours : l’héritage et les pointeurs
TP : Mise en pratique
Mini ProjetGroupe de 3-4Vous avez jusqu’à la fin du mois pour proposer
un sujet
Présentation du principeTravailler avec les pointeurs c’estc’est
Se rapprocher du matériel Nécessite de bien connaitre le fonctionnement de la
mémoireFaire des applications rapidesFaire des applications bugéesAvoir mal à la tête
Présentation du principeTravailler avec les pointeurs c’estc’est
Se rapprocher du matérielFaire des applications rapides
Réserver la mémoire quand on en a besoinFaire des applications bugéesAvoir mal à la tête
Présentation du principeTravailler avec les pointeurs c’estc’est
Se rapprocher du matérielFaire des applications rapidesFaire des applications bugées
Oublier de libérer la mémoire « segmentation fault »
Avoir mal à la tête
Présentation du principeTravailler avec les pointeurs c’estc’est
Se rapprocher du matérielFaire des applications rapidesFaire des applications bugéesAvoir mal à la tête
Des comportements incohérent Des raisonnements très poussés
Rassurons nous un peu…Les pointeurs, c’est compliquécompliqué
En effet, même les plus grands programmateurs font encore ce genre d’erreurs (Windows, Half-Life…)
Les pointeurs, c’est pour nous faire ch..ch..En effet, on en aura bientôt plus besoin (java,
C#...)
Mais…Les pointeurs, c’est pas sisi compliqué
Avec de la méthode et en prenant du temps, on y arrive (et même facilement)
Les pointeurs, c’est utileutileLorsque l’on recherche la rapidité (jeux vidéo,
programmation Temps réel,…) on est obligé d’y passer
Lorsque l’on fait de grosses applications (Photoshop, Windows…) on est obligé d’y passer
Lorsque l’on fait un programme réseau, on est obligé d’y passer
… 9
Le matérielOrganisation de la mémoiremémoire
Programme réel (toto.exe)Comprend le code et les constantes
Variables statiques(toutes les variables sauf les pointeurs)
Variables dynamiques(les pointeurs)
Paramètres des fonctions
10
La pile…ZoomZoom sur la pile et le tas
Augmente quand on appelle une fonction (on empile les paramètres de la fonction et 2-3 autres trucs)
C’est ici qu’on va mettre les valeurs dynamiques (pointeurs)
11
Exemple…Imaginons le main suivant :
i
4ABF
4AC0
4ABE
23A9
23AA
23A8
j
23
void main(){int i;i=58;int j;cout<<j;}
58
F3DE
0F4D
23A7
23A6
23A5
23A4 Prog
BSS
Tas
23A8
12