Bonjour � tous,
Je me pose quelques questions � propos de variables et objets dynamiques (une partie de ces questions aurait peut-�tre du �tre pos�e dans le forum de d�veloppement Windows?!)
1) Quand je cr�e un objet dynamique avec un new, j'enregistre logiquement l'adresse retourn�e dans un pointeur. Imaginons que je copie cette adresse dans un autre pointeur, si je fais un delete en utilisant cet autre pointeur, supprimerais-je bien la totalit� de la m�moire allou�e (imaginons que j'ai fais un casting et que ce ne soit pas des pointeurs vers le m�me type de variable)?
2) (En rapport avec la 1) Lorsque je fais un new, y-a-t-il cr�ation d'une sorte de tableau de r�f�rences o� sont enregistr�es pour chaque adresse allou�e la taille de la zone allou�e? (Dont le delete se servirait pour conna�tre la taille � d�sallouer)
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3 int* c = new int; long* d = (long*)c; delete d;
3) Que se passe-t-il si je fais un delete � une adresse qui n'a pas �t� allou�e dynamiquement?
3bis) Que se passe-t-il si j'ai allou� un tableau (de 10 �l�ments par exemple) et que je fais un delete[] mais comme ceci4) Si j'alloue un tableau dynamique, et que plutot de faire un delete[], je fais simplement delete, que vais-je supprimer? Seulement le premier �l�ment de ce tableau?
Code : S�lectionner tout - Visualiser dans une fen�tre � part delete[] &tab[1];
5) Si j'oublie de d�sallouer une zone de m�moire allou�e dynamiquement, lorsque le programme se termine, la zone de m�moire sera automatiquement supprim�e par l'OS (Windows pour ma part)?
Merci d'avance,
Crisanar
Partager