Delete copy de pointeur

Signaler
Messages postés
573
Date d'inscription
samedi 16 novembre 2002
Statut
Membre
Dernière intervention
9 avril 2008
-
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
-
Salut,

J'ai une erreur lors de la libération de mémoire vive:
Un exemple vaut bien mieux q'un long discours:

BYTE* pByte = new BYTE[n];
BYTE* pByteCopy = pByte;
delete pByteCopy;

Il y a une erreur Windows lors de l'execution de la troisième ligne... pourquoi ?
L'erreur n'a lieu que pour des valeurs de n "grandes" (quelques ko).

J'utilise une telle méthode pour faire du redimensionnement de tableau. Pour ne pas avoir à créer de tableau temporaire, j'échange des pointeurs de tableaux.

ex:
pByte doit être redimensionné ++12.

BYTE* pByteCopy = new BYTE[n+12];
memcpy(pByteCopy, pByte, n); // garder les anciennes données
delete pByte;
pByte = pByteCopy;

Cette routine pose apparement des problèmes. Lesquels sont-ils ?
Merci

1 réponse

Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
delete [] ptr; // quand est un tableau.

ciao...
BruNews, MVP VC++