Автор: ..... (17.03.2010 в 14:09)
что-то непохоже что это работает как нужно
взять хотябы
int *j=new int[r];
random(j,r);
print(j,r);
cout<<"Suma: "<<sum_elem(j,r)<<endl;
delete [] j;
здесь массив простой, и он уничтожается после того как распечатан.
потом вызывается в цикле
nomer *add_tail (nomer *begin, int z)
{
nomer *last = GetLast (begin);
if (!last)
{
cout << "!last = NULL" << endl;
cout << last << endl;
return NULL;
}
nomer *p = new nomer;
last -> next = p;
p -> prev = last;
p -> next = NULL;
p -> a = z;
return 0;
}
( должна возвращать nomer* а фактически может только 0 или NULL )
и к первому рукодельному nomer создаёт ещё штук семь
потом создаётся ещё другая ссылка на другой nomer
nomer *pz=new nomer;
дальше вроде нигде не используется.
и ничего не понятно, даже как это должно работать. запустил выбрал 2: clean_list , потом 1: show_all и элементы остались, вобщем если сделать нормально это, в процессе должно стать понятно как можно переставить элементы :) Просто два значения переставляются вроде только с временным сохранением одного и них в третьем месте . или готовой функцией.