我需要初始化這個變量:const WAVEFORMATEX *pFormat
結構的字段有效值。C++ const結構初始化
首先我試着修改聲明後:(*pFormat).wFormatTag = 0;
然後很快發現const修飾符不允許這樣的動作。然後我嘗試了內聯初始化的變體
new WAVEFORMATEX() { 0, 0, 0, 0, 0, 0, 0}; //or
WAVEFORMATEX { 0, 0, 0, 0, 0, 0, 0};
第一次拋出'期待a'錯誤並且第二個初始化表達式不會返回正確的類型。有人可以幫忙嗎?有一個我以後使用的函數調用必須有一個const WAVEFORMATEX *類型的參數。
這裏的結構文檔:http://msdn.microsoft.com/en-us/library/windows/desktop/dd390970(v=vs.85).aspx
如果該函數採用'const WAVEFORMATEX *'參數,這意味着您必須將它傳遞給WAVEFORMATEX結構的地址,並且該函數保證不會更改結構的內容。 – 2014-08-29 21:04:06
爲何選票回落?對於爲什麼跛腳的原因,沒有任何評論的迴應票! – gordlonious 2014-08-29 21:09:38
我不確定你想要解決的問題。使用'const T * ptr = new T;'是不理想的。你不能在這樣的指針上使用'delete ptr;'。你會泄漏記憶。 – 2014-08-29 21:22:30