Bonjour.

J'aurai voulu avoir confirmation d'une petite chose.
J'ai une fonction qui travaille sur un objet dérivé d'un vector (je prendrais un vector dans la suite pour faire plus simple) :
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
void myFunction(std::vector *inputVector)
{
    std::vector *myVector;
 
    if (inputVector) {
        myVector = inputVector;
    } else {
        myVector = new std::vector;
        myVector->insert(myVector->begin(), 5, 200); // For example
    }
 
    // DO SOMETHING WITH myVector
 
    if (!inputVector) {
        delete myVector;
    }
}
1) Est-ce que ce code est bon/sûr au niveau de la mémoire et de sa libération ?
2) Est-ce qu'il y aurait une façon de protéger mon inputVector de toute modification dans la fonction si il est passé en paramètre (avec un const) ? (si il est passé il doit être non modifiable, si il n'est pas passé, myVector doit pointer vers un vector modifiable)
3) Y aurait-il moyen de faire la même chose avec un vecteur passé par référence ?

Merci beaucoup