Nombreux sont ceux qui recommandent une classe de vecteurs pour un tableau de longueur variable. Et je dois passer le pointeur au bloc de mémoire à GL. Comment puis-je accéder au pointeur sur le bloc de mémoire alloué par std::vector
?Comment accéder au bloc mémoire alloué par std :: vector?
5
A
Répondre
11
Utilisez l'adresse du premier élément. Si votre vecteur est v
alors &v[0]
fonctionnera.
4
ContainerType* pData = &vec.front();
0
std::vector<int> v(1000);
int *p = &v[0];
//treat p as if it points to an array of 1000 ints
//all 1000 ints default-initialized with 0!
Questions connexes
- 1. Comment accéder au Nième élément d'un 2d std :: vector (`std :: vector <std :: vector <T>>`)?
- 2. Supprimer l'objet alloué dynamiquement à partir std :: vector
- 3. mémoire désallocation avec std :: vector réattribution
- 4. Ajout au milieu de std :: vector
- 5. Deuxième argument de std :: vector
- 6. Comment la mémoire dynamique est-elle gérée dans std :: vector?
- 7. std :: list vs std :: vector itération
- 8. Problème avec std :: vector
- 9. posix_memalign pour std :: vector
- 10. gestionnaire de mémoire qui gère un bloc pré-alloué
- 11. Comment std :: vector alloue-t-il des objets?
- 12. Mauvais constructeur std :: vector
- 13. Gérer la mémoire mappée (glMapBuffer) avec std :: vector
- 14. Fuite de mémoire (sorte de) avec un statique std :: vector
- 15. Comment enregistrer `std :: vector <uchar>` dans `std :: ostream`?
- 16. std :: trier sur std :: vector <std::string>
- 17. std :: vector <std::string> crash
- 18. Convertir std :: vector en tableau
- 19. Stringstream compatible STD utilisant le stockage alloué par pile?
- 20. Comment std :: vector dans XCode + C++?
- 21. Equivalent de std :: vector en Java?
- 22. Très basique std :: vector itération
- 23. C++ std :: vector :: question const_iterator
- 24. Boost Multiarray de std :: vector
- 25. Convertir NSDictionary en std :: vector
- 26. C++ std :: vector insert segfault
- 27. std :: vector, thread-safety, multi-threading
- 28. Prenant l'argument && dans std :: vector push_back() et std :: operator carte []
- 29. C++: std :: vector et entrée interator
- 30. Avantages de l'utilisation de tableaux au lieu de std :: vector?
N'est-ce pas une mauvaise chose à faire? Est-ce que quelqu'un avec une meilleure compréhension des choses que moi peut clarifier ce point, s'il vous plaît? – batbrat
@batbrat: non, ce n'est pas une mauvaise chose à faire, je ne pense pas qu'il y ait des appels OpenGL qui essaieraient de réallouer le bloc, il suffit de lire et d'écrire le contenu. Vous devez également passer la bonne longueur à GL. –
@Steve Jessop: Merci pour la clarification. Je suis content de savoir que je peux l'utiliser en toute sécurité. – batbrat