Hej. Mam w programie dynamiczną tablicę unsigned *indexes
, która jest alokowana na wyrost i najczęściej przechowuje nof_elems
elementow (od indeksu zero po nof_elems - 1
). reszta mnie nie obchodzi i jest niezainicjowana w tej tablicy a gdy iteruje to zawsze pamiętam for(i=0;i<nof_elems;++i);
. Zawsze sprawdzam aplikacje Valgrindem:
Conditional jump or move depends on uninitialised value(s) (...) Conditional jump or move depends on uninitialised value(s)
zajęło mi 50 minut żeby znaleźć błąd i zmienić
data->indexes = malloc(alloc_nelems * sizeof(unsigned));
na data->indexes = calloc(alloc_nelems,sizeof(unsigned));
dlaczego on traktuje to jako błąd i czy pozostawienie uninitialised values w tablicy jest niezalecane?
karolinaa