1

好的,所以这个问题有点难以解释,我会尽力而为。

void SetData(void* anElement)
{
  myData = anElement;
}
void* GetData()
{
  return myData;
}

基本上我有一个我自己制作的一维矩阵类,我想将其作为值内(anElement)发送,SetData() 然后我希望通过调用来获得它GetData()

这保存了我的矩阵中第一个元素的地址:

SetData(reinterpret_cast<void*>(&myMatrix[0]));

我的矩阵中的元素都是浮点数,所以我想我会尝试像这样丑陋地编码它:

for(int i = 0; i < 16; i++)
{
  myMatrix[i] = reinterpret_cast<float*>(aMessage->GetData())+sizeof(float)*i;
}

结果是一些值似乎是正确的,而另一些则只是假的。

屏住呼吸等待您的回应 =)

4

1 回答 1

2
myMatrix[i] = reinterpret_cast<float*>(aMessage->GetData())+i;

可能是你想要的。如果将整数添加i到 a float*,则生成的指针i * sizeof(float)与原始指针相距字节。

于 2012-09-20T01:39:50.837 回答