Re[2]: Выделение памяти.
От: Simple Boy  
Дата: 07.10.02 11:54
Оценка:
Здравствуйте Anton V. Kolotaev, Вы писали:

AVK>Здравствуйте Simple Boy, Вы писали:


AVK>malloc — механизм выделения памяти, принятый в С

AVK>new — в С++.

AVK>new — приводит к вызову конструктора, malloc — нет.


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

SB>>функцией realloc ?

AVK>Попробуй

AVK>Это — грубейшая ошибка.

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

BYTE *p=new BYTE[2];
p[0]=1;
p[1]=2;
realloc(p,3);
p[2]=3;
delete p;

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

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


Так ?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.