2012-09-20 18 views
1

好的,所以這個問題有點難以解釋,我會盡我所能。將一組內存從void *轉換爲類

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; 
} 

而結果是有些值似乎出來是正確的,而其他的只是假的。

屏息等待你的答覆=)

回答

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

可能是你想要的這裏。如果將整數i添加到float*,則生成的指針距原始指針爲i * sizeof(float)字節。

相關問題