Petites questions sur un pointeur vers vector
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:
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 ;)