прямо сейчас, если n равно 3 вместо 123, я получаю 012
Я думаю, это зависит от того, что create_soldier(i)
делает со значением в i
, но обратите внимание, что циклиспользует i
значения от 0 до n-1, а не от 1 до n.
Возможно, вам следует изменить начальное и конечное значения цикла for
на:
for (int i=1; i<=n; i++)
я получаю дамп сегментации, если я пытаюсь использовать функцию перестановки окружности
Spongebob* rearrange_circle(Spongebob* head)
{
Spongebob* temp = head;
Spongebob* head2 = NULL;
Spongebob* next = NULL;
do
{
next = head->next;
temp->next = head2->next;
^^^ Вы разыменовываете нулевой указатель head2
.
head2->next = temp;
temp = head2->prev;
}
while(head!= NULL);
^^^ head!=NULL
всегда будет истинным (в результате получается бесконечный цикл), если rearrange_circle()
не был вызван с нулевым указателем (в этом случае предыдущий next = head->next;
является разыменованием нулевого указателя.
if(temp != NULL )
head2 = temp->prev;
^^^ Это в конце функции, и head2
сейчас не используется, поэтому вышеприведенное утверждение кажется немного бессмысленным.
}
Я не знаю, что rearrange_circle()
должен делать, поэтому у меня нет предложений, как это исправить.