編輯:C++比特除去,以避免混淆麻煩鑄造1D陣列2D陣列
我有數據的數組像這樣
int numSamples = 16;
float *lData = (float*)calloc(numSamples, sizeof(float));
...,我想這個數據傳遞到一個函數與這樣的定義。 。 。
void processSampleBlock (const float ** inputChannelData,
int numInputChannels,
...)
正如你所看到的,這個函數接受一個2D數組,它可以有多個通道。我的數據只有一個通道(1D),但我可以通過像這樣進行轉換來使代碼編譯正確。 。
processSampleBlock ((const float**)(lData),
1,
...)
不過,我在運行時得到一個壞訪問錯誤,則此功能塊嘗試內代碼取消引用函數內的數據。 。
for (int nn=0; nn< numSamples; ++nn)
{
float x = inputChannelData[0][nn]; //--> Computer says no
}
我用C風格的多維數組無用,可能在這裏犯了一個基本錯誤。任何幫助將是偉大的!由於
'的boost :: scoped_array' - 這是爲什麼標籤C? –
Pubby
對不起,我的問題是與C風格的位:) – learnvst
爲什麼不能指向行的指針數組只包含一個指向單行的指針? – learnvst