Mam obiekt typu array (C++11)
std::array<int, 3> a2;
Jak wydobyć z niej wskaźnik
int *a2
bez rzutowania?
Mam obiekt typu array (C++11)
std::array<int, 3> a2;
Jak wydobyć z niej wskaźnik
int *a2
bez rzutowania?
a2.data()
dokumentacja nie boli: http://en.cppreference.com/w/cpp/container/array/data
Dzięki. A powiedziałbyś tylko jeszcze jak to zrobić dla dwuwymiarowej tablicy? (zarowno deklaracja array jak i wydobycie int**)
Tablica dwuwymiarowa to nie int**
std::array<std::array<int, 3>, 5> arr2d;
Nie pamiętam czy to nie jest od standardu C++14.
std::array
jest jednowymiarowa.
możesz zrobić array<array<cośtam, X>, Y>
.
ale pytanie dlaczego chcesz używać std::array
i jednocześnie wskaźnika?
Mikilll napisał(a):
Np. mam funkcje ktora przyjmuje int* x i chce przekazac array
array<array<int>>
może być przekazana jako dwuwymiarowa tablica int[X][Y]
ale nie jako tablica wskaźników int**
. to zupełnie dwie różne rzeczy.
Znów to samo się zaczyna.
Nie, nie, nie. Nie potrzebujesz żadnych tablic "wielowymiarowych". Zawsze używaj jednowymiarowej tablicy i odpowiednich funkcji dostępowych, które będą ją traktować jak wielowymiarową. Napisz prostą klasę do tego, znajdź w Internecie, cokolwiek.
Zapomnij o jakichkolwiek int **
.