La réaffectation de la mémoire via la “nouvelle” en C++

Petite question concernant la gestion de la mémoire en C++

Si je fais l'opération suivante:

pointer = new char [strlen(someinput_input)+1];

Puis l'exécuter à nouveau, avec peut-être un autre résultat retourné par strlen(someinput_input).

Est-ce le fruit en mémoire à gauche allouée à partir de la précédente "new" déclaration? Comme dans chaque new déclaration de la réception d'un autre bloc de mémoire dans la mémoire de l'OS, ou est-ce simplement la réaffectation?

En supposant que je fais une dernière delete pointer[]; sera que de libérer toute et toute la mémoire que j'ai jamais affectés par new de pointeur?

Le recyclage de la mémoire est de la plate-forme / OS, et il peut être différent entre les différentes plates-formes. Une fois que la mémoire est deleted ou freed, la plate-forme qui en est chargé, et quand l'utiliser, si possible.

OriginalL'auteur BSchlinker | 2010-04-01