Muchas personas recomiendan la clase vectorial para la matriz de longitud variable. Y tengo que pasar el puntero al bloque de memoria a GL. ¿Cómo puedo acceder al puntero al bloque de memoria asignado por std::vector
?¿Cómo acceder al bloque de memoria asignado por std :: vector?
5
A
Respuesta
11
Usa la dirección del primer elemento. Si su vector es v
, entonces &v[0]
funcionará.
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!
Cuestiones relacionadas
- 1. ¿Debería preocuparme por la fragmentación de memoria con std :: vector?
- 2. ¿Dónde asigna un std :: vector su memoria?
- 3. reserva() de memoria multidimensional std :: vector (C++)
- 4. memoria desasignación con std :: vector reasignación
- 5. std :: vector insert() reasignación
- 6. Regreso std :: vector por valor
- 7. cómo liberar std :: vector si no hay memoria del montón
- 8. Diferencia en el diseño del bloque de memoria asignado por malloc y calloc?
- 9. ¿Cómo puedo ordenar un std :: vector por los valores de un std :: vector diferente?
- 10. Cómo exportar std :: vector
- 11. std :: list vs std :: vector iteration
- 12. ¿Cómo hacer std :: vector de otro vector con filtro específico?
- 13. std :: vector de funciones
- 14. la memoria usada por un std :: string
- 15. paso eficiente de std :: vector
- 16. std :: vector de std :: vectores de contigüidad
- 17. ¿Es seguro acceder al puntero sin formato después de std :: vector :: reserve?
- 18. ¿Cómo liberar memoria de std :: deque?
- 19. ¿Forzar un std :: vector para liberar su memoria?
- 20. ¿Puede un std :: vector ser = 'd a otro std :: vector?
- 21. ¿Cómo funciona C++ std :: vector?
- 22. std :: elementos de vector inicializando
- 23. Cómo ordenar un objeto std :: vector por su valor flotante
- 24. ¿Por qué std :: vector :: operator [] 5 a 10 veces más rápido que std :: vector :: at()?
- 25. Cómo "fundido" un std :: vector <char> std :: vector <wchar_t>
- 26. Preasignar memoria en MATLAB a la std :: vector :: reserve (n)
- 27. std :: vector alternativa para C
- 28. Escribiendo la memoria kernel al bloque ext2
- 29. ¿Cómo acceder al último valor en un vector?
- 30. std :: vector versus std :: array en C++
¿No es esto algo malo que hacer? ¿Puede alguien con una mejor comprensión de las cosas que yo aclarar este punto, por favor? – batbrat
@batbrat: no, no es algo malo que hacer, no creo que haya ninguna llamada OpenGL que intente reasignar el bloque, solo lea y escriba los contenidos. También debes pasar la longitud correcta a GL. –
@Steve Jessop: Gracias por aclarar. Me alegra saber que puedo usarlo de manera segura. – batbrat