Как после каждого парного элемента структуры добавить элемент на единицу больше чем этот парный элемент?
Помогите пожалуйста! У меня есть структура:
typedef struct SNum
{
int num;
SNum * next;
SNum * prev;
} TSNum;
TSNum * Start;
Я в неё добавляю рандомные элементы. Мне требуется обрабатывать эту структуру разными способами. Один из них - с помощью функции после каждого парного элемента структуры добавить элемент на единицу больше чем этот парный элемент. Я сделал такую функцию, однако консоль вылетает после её вызова. Подскажите пожалуйста, где я ошибся? Моя функция:
void newElemAfterPar(TSNum * &Start)
{
TSNum * wp, *pp;
wp=Start;
TSNum * New = NULL;
pp=wp;
New->prev=NULL;
New->next=NULL;
int numer = 0;
while(wp!=NULL)
{
if((wp->num)%2==0)
{
numer=(wp->num)+1;
New->num=numer;
wp=wp->next;
pp->next=New;
New->prev=pp;
New->next=wp;
}
numer=0;
}
while(wp!=NULL)
{
cout << wp->num <<" ";
pp=wp;
wp=wp->next;
}
cout << endl;
}
Источник: Stack Overflow на русском