Здравствуйте, Кодт, Вы писали:
К>Твой пример на кодепаде: http://codepad.org/sz8xEBVV
К>выдаёт сегфолт (расстрел памяти) на 28 шаге.
Очевидный косяк: for(i=0; i
<=n; ++i).
В С/С++ принято использовать полуинтервалы — т.е. a[n] содержит элементы a[0], a[1], ..., a[n-1].
При i=n происходит вылет за границу массива.
Я добавил отладочный вывод (значения индексов i и j) —
http://codepad.org/ni6fysTP
И вот что получил
<.....>
START!!!
i=0, j=4
sdg=0.011244
i=1, j=4
sdg=0.0123149
i=2, j=4
sdg=0.0123691
i=3, j=-1483517220
Segmentation fault
То есть, на последнем этапе (j=4, i=2) мы умудрились выскочить за границу массива Ht и
выстрелить в находящуюся по соседству переменную j.
После чего попытались обратиться к Ht[j] с этим бешеным отрицательным значением.
Разбираться в алгоритме не хочу, — так что более содержательную помощь пока оказать не готов.