Wpis z mikrobloga

Mam sobie taki fragment kodu: http://pastebin.com/LMv2xT9z
Do miejsca oznaczonego komentarzem jest niby wszystko git - faces ma rozmiar 0, a pojemność równą geom_count. Jednak wywołanie tej linijki:

viewer::get_geometry(pid, &face, i);
powoduje, że faces zmienia rozmiar na 26132075 a iterator pętli i otrzymuje wartość 3856659028.

Funkcja viewer::get_geometry jest wywoływana z SDK, dostępu do jej wnętrzności nie mam. Wartość zmiennej face wypełnia prawidłowo, tylko tamtą resztę rozwala totalnie.

Czy ja jestem ślepy i jakiegoś oczywistego błędu tu nie dostrzegam?

#programowanie #cpp
  • 6
  • Odpowiedz
w pierwszej iteracji petli zmienia Ci sie "i"? :o Czy get_geometry bierze trzeci argument przez kopie czy referencje?

// edit: no dobra, wyglada, ze kopia
  • Odpowiedz
@rzezol: Eeee mi to API wyglada jakby chcialo dostac tablice Face (Face *faces) i ilosc (count) a nie numer oraz pointer do jednego elementu.To Ci moze rozwalac stos. Zaalokuj sobie tablice N x Face i przekaz ja do get_geometry albo zresizuj vector i daj mu pointer z data().
  • Odpowiedz