
24.06.2009, 02:25
|
|
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
С нами:
10386906
Репутация:
599
|
|
struct item{
item* next;
item* prev;
LPVOID data;
int size;
};
выделять память под это добро так
item new_item = new item;
new_item.data = (LPVOID) new char[20];
new_item.size = 20;
удалять вроде сначала с data(хотя уже не помню, ибо оч давно не юзаю чистые указатели для таких целей, но вроде рекурсивно вызываться не будет удаление для всех полей структуры, только не задашь деструктор и в нем сделаешь освобождение памяти)
delete [] new_item.data;
delete new_item;
теперь собсно вопрос - такого ли плана у тебя код. и второй вопрос - вот теперь опиши проблему с этим кодом. ибо не очень понятно о каких элементах у тебя речь - то ли о целом объекте структуры, то ли о блоке памяти, который хранится в указателе, то ли ты вообще делаешь типа обход всех объектов структуры, суммирование размеров, выделение одного большого куска памяти, распихивание в один блок всей инфы и настройка указателей в структурах. тогда уже можно будет понять что и как делать
|
|
|