gpt4 book ai didi

c++ - 将一组内存从 void* 转换为一个类

转载 作者:行者123 更新时间:2023-11-30 04:24:44 24 4
gpt4 key购买 nike

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

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

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

来获取它

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

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

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

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

结果是有些值似乎是正确的,而其他值只是假的。

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

最佳答案

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

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

关于c++ - 将一组内存从 void* 转换为一个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12505025/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com