Автор Тема: Средна стойност на двойно свързан списък - Seg Fault  (Прочетена 1176 пъти)

bz1pp3d

  • Напреднали
  • *****
  • Публикации: 15
  • Distribution: Arch
  • Window Manager: openbox
    • Профил
Здравейте! Имам проблем със намиране на средна стойност в двойно свързан списък. Ето го и него (има и няколко други функции, но интерес представлява единствено обработката на средната стойност.)
http://pastebin.com/hX9VtTtY

Въпросът е: защо се чупи функцията? Всякакви мнения и критики са + ! Благодаря!
Активен

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Първо добре че поназнайвам малко немски, доста е гадно когато имена на функции и променливи не ти говорят нищо :)

Иначе проблемът лесно може да се види:

Цитат
        ptr=root;
        while(ptr!=NULL){
                ptr=ptr->next;
                summe=summe+ptr->Messwert;
                temp++;
        }

Сега помисли си какво става когато ptr сочи към последния елемент в списъка. присвояваш на указателя ptr->next и после се опитваш да го dereference-неш. Следва едно хубаво бум. В този ред на мисли или прави ptr=ptr->next в края на while body-то, или си сложи една проверка дали е NULL.
Активен

"Knowledge is power" - France is Bacon

bz1pp3d

  • Напреднали
  • *****
  • Публикации: 15
  • Distribution: Arch
  • Window Manager: openbox
    • Профил
Изглежда цялата материя на абстрактните структури е интересна... Благодаря gat3way!
Активен

bvbfan

  • Напреднали
  • *****
  • Публикации: 1056
  • Distribution: KaOS
  • Window Manager: Plasma 5
    • Профил
По-добре ползвай
Код
GeSHi (C):
  1. for(ptr=root; ptr; ptr=ptr->next)
, освен това може да ползваш макрос с цел да не объркаш
Код
GeSHi (C):
  1. #define for_ech_elem(p,s) for(p=s; p; p=p->next)
. След това tail няма нужда да заделя памет в началото, както за всяка заделена памет, когато преставаш да я ползваш, трябва да я освободиш с free, ако смяташ да се занимаваш с програмиране, в частност С/С++, трябва да използваш и програми за следене на грешки при изпълнението на кода, например valgrind.
« Последна редакция: Jun 17, 2012, 16:33 от bvbfan »
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
updatedb Segmentation fault
Настройка на хардуер
coldy 0 1282 Последна публикация Jun 02, 2004, 12:46
от coldy
Segmentation Fault, Help
Настройка на програми
KeuH 2 1793 Последна публикация Jun 18, 2005, 11:19
от the_real_maniac
Segmentation fault
Хардуерни и софтуерни проблеми
digitech 5 2362 Последна публикация Jun 29, 2005, 17:29
от toxigen
Segmentation fault
Настройка на програми
STormDevil_ 2 2124 Последна публикация Jan 23, 2007, 23:03
от STormDevil_
Segmentation fault
Настройка на програми
tony1975 4 2087 Последна публикация Jan 29, 2007, 10:21
от somethingbad