Exercice 1

Exercice 1#

Question 1

Quelles sont les trois étapes pour construire un tableau en C++?

BEGIN SOLUTION

  1. Déclaration

  2. Allocation

  3. Initialisation

END SOLUTION

Question 2

Illustrez 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

Question 3

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 4

Quelle(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