Титла: Средна стойност на двойно свързан списък - Seg Fault Публикувано от: bz1pp3d в Jun 17, 2012, 15:25 Здравейте! Имам проблем със намиране на средна стойност в двойно свързан списък. Ето го и него (има и няколко други функции, но интерес представлява единствено обработката на средната стойност.)
http://pastebin.com/hX9VtTtY Въпросът е: защо се чупи функцията? Всякакви мнения и критики са + ! Благодаря! Титла: Re: Средна стойност на двойно свързан списък - Seg Fault Публикувано от: gat3way в Jun 17, 2012, 15:37 Първо добре че поназнайвам малко немски, доста е гадно когато имена на функции и променливи не ти говорят нищо :)
Иначе проблемът лесно може да се види: Цитат ptr=root; Сега помисли си какво става когато ptr сочи към последния елемент в списъка. присвояваш на указателя ptr->next и после се опитваш да го dereference-неш. Следва едно хубаво бум. В този ред на мисли или прави ptr=ptr->next в края на while body-то, или си сложи една проверка дали е NULL. Титла: Re: Средна стойност на двойно свързан списък - Seg Fault Публикувано от: bz1pp3d в Jun 17, 2012, 15:47 Изглежда цялата материя на абстрактните структури е интересна... Благодаря gat3way!
Титла: Re: Средна стойност на двойно свързан списък - Seg Fault Публикувано от: bvbfan в Jun 17, 2012, 16:31 По-добре ползвай
Код , освен това може да ползваш макрос с цел да не объркаш Код . След това tail няма нужда да заделя памет в началото, както за всяка заделена памет, когато преставаш да я ползваш, трябва да я освободиш с free, ако смяташ да се занимаваш с програмиране, в частност С/С++, трябва да използваш и програми за следене на грешки при изпълнението на кода, например valgrind. |