Home
Support
為什麼在迴圈中呼叫ImaqImageToArray()函數時,記憶體的使用量會一直增加?
為什麼在迴圈中呼叫ImaqImageToArray()函數時,記憶體的使用量會一直增加?
主要軟體:
主要軟體版本:
主要軟體修正版本:
次要軟體:
問題: 在我的應用程式中會在迴圈的架構下去呼叫imaqImageToArray()這個函數。但是我發現每次一呼叫這個函數,記憶體的使用量就會增加,其增加量和擷取的影像大小一樣。
解答: 每次呼叫imaqImageToArray()這個函數時,就會在系統記憶體放置一份陣列資料(從影像產生而來)的記憶體複製。換言之,當函數呼叫成功時會回傳一個指標,用來指向這一份記憶體複製的位址。這份記憶體複製和擷取的影像兩者大小是一樣的,因此,若沒有將其作記憶體釋放的動作,那麼很快地將會導致系統記憶體的資源全部被消耗掉。若要針對imaqImageToArray()所回傳的指標作記憶體釋放的動作,可以在同一個迴圈中呼叫imaqDispose()這個函數。下面的步驟為釋放記憶體的流程:
iPointer = imaqImageToArray ( imgInputImage , IMAQ_NO_RECT , &iCols , &iRows );
imaqDispose ( iPointer );
相關連結:
附加檔案:
報告日期: 08/28/2003
最後更新: 02/11/2008
文件偏號: 30RBFT45
Other Support Options
Ask the NI Community
Collaborate with other users in our discussion forums
Request Support from an Engineer
A valid service agreement may be required, and support options vary by country.