39 0 108KB
Licence Sciences Pour l'Ingénieur & Licence Physique, Chimie 3ème année Programmation en C/C++ - TD n°1 Année Universitaire 2020-2021
Exercice n°1 : transmission par valeur, transmission par référence. Ecrire une fonction permettant d’échanger les contenus de deux variables de type « int » fournies en argument, en transmettant la valeur des variables concernées (td1_exo1a.cpp) puis en utilisant la transmission par référence (td1_exo1b.cpp). Dans les deux cas, on écrira un programme d’essai (main) de la fonction. Exercice n°2 : structure, transmission par adresse, transmission par référence. Soit le modèle de structure suivant : struct essai { int n ; float x ; }; Ecrire une fonction « raz » permettant de remettre à zéro les deux champs d’une structure de ce type transmise en argument, d’abord par adresse (td1_exo2a.cpp) puis par référence (td1_exo2b.cpp). Dans les deux cas, on écrira un petit programme d’essai de la fonction ; il affichera les valeurs d’une structure de ce type, après appel de ladite fonction. Exercice n°3 : allocation dynamique, débordement mémoire. Ecrire un programme allouant des emplacements pour des tableaux d’entiers dont la taille est fournie en donnée. Les allocations se poursuivront jusqu’à ce que l’on aboutisse à un débordement mémoire. L’exécution se présentera ainsi : Taille du tableau ? 60000 Allocation bloc numero : 1 Allocation bloc numero : 2 Allocation bloc numero : 3 Allocation bloc numero : 4 Allocation bloc numero : 5 ………………………………………… Memoire insuffisante − fin execution On proposera deux solutions : l’une ne faisant pas appel à « set_new_handler », il faudra donc vérifier la valeur fournie par l’opérateur « new » (td1_exo3a.cpp), l’autre faisant appel à « set_new_handler » (td1_exo3b.cpp). On rappelle que « set_new_handler » attend comme argument l’adresse de la fonction à appeler en cas de débordement mémoire.
Page 1 sur 1