我已經看過一些類似的問題,但沒有解決方案正在爲我的案例工作。將指針指向的數據複製到另一個指針
我有一個類有一個連續運行的更新函數。該函數有一個unsigned short*
參數,其中包含圖像的2D數據,每次調用更新時該數據都不相同。在開始執行時,我想將第一幀數據保存在單獨的unsigned short*
中,並且此數據必須在所有執行中保持活動狀態。
//設置在執行
void Process::setup()
{
...
_firstFrame = new unsigned short; //_firstFrame is an unsigned short* private variable from the class
return;
}
void Process::update(unsigned short* frame)
{
//-- Performing an initial calculation before any further processing
if (!_condition)
{
//some processing that changes condition to true when criteria is met
if (condition)
memcpy(_firstFrame, frame, sizeof(640*480*sizeof(unsigned short)));
//each frame has 640*480 dimensions and each element is an unsigned short
return;
}
//further processing using frame
}
現在,_firstFrame應該始終從框架條件滿足後,起源保持數據的開始運行一次,但_firstFrame只包含零。 有什麼幫助嗎?
您只爲一個未簽名的short分配空間。想必你想要一個數組。 – ooga
你想從*'_firstFrame'複製*到*或*嗎?請記住'memcpy'的目標參數是第一個。 –
是的,我會編輯這個問題,因爲這個代碼被複制粘貼後,我切換他們檢查,如果我是錯誤的傳遞參數,顯然產生了分段錯誤。 –