Re[3]: Выделение памяти.
От: Bell Россия  
Дата: 07.10.02 12:07
Оценка:
Здравствуйте Simple Boy, Вы писали:


SB>Попробовал. Работает. По крайней мере на таком примере:


Попробуй вместо BYTE использовать некий класс, и посмотри как вызываются (или не вызвыаются) конструкторы/деструкторы

SB>Но я понимаю что это не есть хороший стиль. Но в таком случае как

SB>перевыделять память полученную от new ?

SB>BYTE *p=new BYTE[2];

SB>p[0]=1;
SB>p[1]=2;
SB>BYTE *temp=new BYTE[2];
SB>memcpy(temp,p,2);
SB>delete p;
SB>p=new BYTE[3];
SB>memcpy(p,temp,2);
SB>p[2]=3;

SB>

SB>Так ?

Проще надо быть:

BYTE *p=new BYTE[2];
p[0]=1;
p[1]=2;
BYTE *temp=new BYTE[3];
memcpy(temp, p, 2);//memcpy можно использовать ограниченно - для втроенных типов или классов, которые не содержат мемберов-указателей
delete [] p;//Обрати внимание!
p = temp;
Любите книгу — источник знаний (с) М.Горький
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.