Capt_S
#programowanie #cpp
Mam w klasie pointer do array:

float(*range_)[];
w konstruktorze chcę stworzyć array, np. { 0, 180 } - jak to zrobić?
range_ = new { 0, 180 } daje "expected a type specifier",
_range = new float[2] daje "a value of type float* cannot be assigned to an entity of type float(*)[]"
0
  • Najlepsze
  • Wszystkie komentarze
Chrzonszcz
Treść przeznaczona dla osób powyżej 18 roku życia...
3
filozof900
@Capt_S: nie ma w tym nic dziwnego, kiedy deklarujesz float f[] to jest tak na prawde staly wskaznik do poczatku tablicy
2
e.....1
@Capt_S: https://ideone.com/Iz2lZR - nie używaj surowych wskaźników, jeśli masz do dyspozycji chociaż C++11
1
MamCieNaHita
@Capt_S: najpierw powiedz co chcesz osiągnąć, żeby nie było problemu XY
1
e.....1
Treść przeznaczona dla osób powyżej 18 roku życia...
1
e.....1
float* ptrtoasinglefloat = new float{5.0f};

float* arrayoffloats = new float[2];
array
1
Kaczus2B
Kaczus2B
@Capt_S: moze pomysl o std::vector....
1
Capt_S
@Chrzonszcz: a jak dam gwiazkę float *range_[] to nie będzie array of pointers to float? A ja chcę pointer to array of floats.
0
Capt_S
@enceladus71: no tak, później sobie dobiorę jakiegoś smart pointera, ale tak żeby zrozumieć dlaczego nie działa mi to co mam teraz to i tak bym chciał... :P
0
Chrzonszcz
@Capt_S: ja p------e

float *ptr; // wskaznik do array of float
float *ptr[]; // tablica wskaznikow do float, tablica wskaznikow do tablic float
0
e.....1
@Capt_S: https://ideone.com/Iz2lZR - zaktualizowałem snippet o surowy wskaźnik, paskudne, ale możesz zobaczyć jak to się robi w takiej wersji
0
Capt_S
float *ptr; // wskaznik do array of float


@Chrzonszcz:
@enceladus71: a więc niczym się nie różni deklaracja wskaźnika do tablicy floatów, od deklaracji wskaźnika do float? Dziwnie...
0
e.....1
@Capt_S: Masz jeszcze taką opcję inicjalizacji prostej tablicy, ale wciąż to nie jest coś, czego w 2019r powinieneś używać https://ideone.com/LYJN0r
0
Chrzonszcz
Dziwnie


@Capt_S: jak dziwne!? Aksjomat języka C:

NAZWA TABLICY JEST WSKAŹNIKIEM NA JEJ PIERWSZY ELEMENT
0
Capt_S
Capt_S Autor
  • adult
Treść przeznaczona dla osób powyżej 18 roku życia...
0
e.....1
@Capt_S: No to od takich informacji się zaczyna, jak prosisz o pomoc. To co masz w przykładzie jest ok, tylko ta środkowa linijka nie jest w ogóle potrzebna.
0
Capt_S
@enceladus71: no właśnie chciałem pozbawić pytanie kontekstu żeby usłyszec szybką i prostą odpowiedź :D dlaczego nie jest potrzebna? Stąd to mam: https://docs.opencv.org/master/d7/d00/tutorial_meanshift.html
0
Capt_S
@enceladus71: dobra, w dokumentacji znalazłem, że jest wariant dla std::Vector więc koniec tematu jak dla mnie, bo nie widzę sensu się bawić z tymi tablicami...
0
e.....1
@Capt_S: Jak jest wersja z wektorem, to właśnie w nią idź, bo będzie łatwiej. Co do tej środkowej linijki, to mój błąd - jednak jest potrzebna, nie zauważyłem, że funkcja docelowa bierze float**.
0