Привет, ребята. Спасибо за клик.
Это проблема, с которой я сталкиваюсь при кодировании OpenGL, но в целом это довольно общая проблема - так что ничего специфического для графики.
У меня есть структура (не класс, а просто структура), Particle.
typedef struct
{
float x;
float y;
float z;
}float3;
typedef struct
{
float3 position;
float3 velocity;
//...other stuff
}Particle;
И я работаю с кучей частиц (Particle * частиц []), но у меня есть функция, которая требует float * позиций, упакованных в порядке x, y, z.
Итак, краткое изложение моей проблемы:
Мои данные:
//I have this in a bunch of encapsulated structs
[... {1.0f, 2.0f, 3.0f,} ... {4.0f, 5.0f, 6.0f} ...]
//I want...
[1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f]
Моя проблема ... У меня уже есть все данные! Я не хочу снова использовать malloc / memcpy. Есть ли способ использовать данные, которые уже есть? Любая акробатика указателя C? Я также беспокоюсь о таких вещах, как выравнивание / заполнение.
(float3 - это структура, определенная в CUDA, если кому-то интересно).