chcę zapisywać dane z std::vector<char>
do gniazda, używając funkcji write
, który ma ten prototyp:Jak mogę uzyskać wskaźnik do pierwszego elementu w std :: vector?
ssize_t write(int, const void *, size_t);
Drugi argument tej funkcji musi być wskaźnikiem do pierwszego elementu w std::vector<char>
. Jak mogę uzyskać wskaźnik do tego elementu?
Próbowałem std::vector::front
, ale to zwraca odwołanie, a ja potrzebuję wskaźnik.
.data() (C++ 11) powinny być preferowane. mv_vec [0] nie działa, jeśli tablica jest pusta. – TarmoPikaro
@ TarmoPikaro Nadal musisz sprawdzić rozmiar. Nie można usunąć dereferencji z wyniku 'std :: vector :: data', jeśli' std :: vector :: size' wynosi zero. 'std :: vector :: data' jest preferowany, ponieważ jeśli wektor jest pusty, nie powoduje niezdefiniowanego zachowania, takiego jak' & v [0] '. –
Wolałbym nie sprawdzać niczego. Więc powinieneś otrzymać jakiś manekinowy wskaźnik, ale jeśli size() ma wartość 0, nic nie zostanie zrobione z tym sztucznym wskaźnikiem. Czy front() działa w ten sposób? Przynajmniej dla wersji wydań? – TarmoPikaro