我认为我的问题是因为我将指针的大小与浮点的大小进行比较,而不是将数组中的元素数量与浮点进行比较。
Model::Model(float* p_pos)
{
// Determine vertex count
m_vertexCount = (sizeof(p_pos) / sizeof(float)) / 3;
如果我不是作为float* p_pos
传递,而是作为float p_pos[]
传递,则没有任何变化。如何确定模型中的vert数?
C数组在作为函数参数传递时会衰减为指针,因此无法提取长度。如果你想知道传递给函数时的长度,你有3个选择:
- 切换到
std::array
- 将数组的长度与数组一起传递
- 切换到
std::vector