Exercice 1#
Question 1Quelles sont les trois étapes pour construire un tableau en C++?
BEGIN SOLUTION
Déclaration
Allocation
Initialisation
END SOLUTION
Question 2Illustrez votre réponse avec quelques lignes de code construisant en trois étapes un tableau de cent entiers égaux à \(1\). Dessinez la pile et le tas après cette construction:
/// BEGIN SOLUTION
vector<int> t; // Déclaration
t = vector<int>(100); // Allocation
for ( int i = 0; i < 100; i++ ) { // Initialisation
t[i] = 1;
}
/// END SOLUTION
/// BEGIN SOLUTION
┌──────────────┬──────┐ ┌─┬─┬─┬───┬─┐
│vector<int> t │ 100 ⏺┼────────>│1│1│1│...│1│
├──────────────┴──────┤ └─┴─┴─┴───┴─┘
│ ... │
└─────────────────────┘ ──────────────────────
Pile Tas
/// END SOLUTION
Quelle(s) conséquence(s) si on oublie la première étape?
BEGIN SOLUTION Le compilateur donnera une erreur: le tableau n’est pas déclaré. END SOLUTION
Question 4Quelle(s) conséquence(s) si on oublie la deuxième étape?
BEGIN SOLUTION Les conséquences ne sont pas définies par la norme de C++. Au mieux, le programme s’arrête avec une erreur de segmentation. Au pire, la mémoire est corrompue. END SOLUTION