Ha még mindig segfaultol a ciklus végén, akkor én a helyedben teleraknám printf-fel, hogy lásd, hogy valójában mi történik, melyik sornál vagy indexnél száll el (vagy persze debuggerrel is nekimehetsz (pl gdb)).
Viszont nekem a kedvenc részem a kódból, hogy az egyetlen komment ez:
i++; /*Növeljük az indexet*/
:)
Nem bántásból írom, de tipikusan ez az a kommment, ami teljesen felesleges, nem ad hozzá semmit a kódhoz. Ne érts félre, nem azt mondom, hogy tele kell rakni kommenttel, de ha írsz, akkor soha ne arról szóljon, amit egyébként is ki lehet olvasni első ránézésre a kódból, hanem pl ha egy bonyolult feltételt meg kell magyarázni, vagy ha nem egyértelmű, hogy miért csinálja a kód azt, amit csinál. Amúgy nekem a kommentelésről az a véleményem, hogy az a legjobb, ha olyan jól olvasható a kód, hogy nincs szükség kommentre...