-1
我試圖修改一個多維數組。這是我的功能碼 -將多維數組傳遞給函數C
void rot90(int n,char **a)
{
int i,j;
int b[n][n];
for(i=n-1;i>=0;i--)
{
for(j=0;j<n;j++)
{
a[n-1-i][j]=b[j][i];
}
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
a[i][j]=b[i][j];
}
}
}
而在我的主要功能,我叫它爲 - A是一個二維數組爲n×n。rot90(n,A);
其示出了上編譯以下錯誤 - 警告:傳遞的從兼容的指針類型「rot90」參數2 音符[默認啓用]:預期「字符**」,但參數是字符類型的」(*) [10]'
什麼是正確的做法? 謝謝。
你能告訴我們'A'的定義嗎? – Coconop 2014-09-25 07:21:17
我想這只是一個重現問題的例子,但仍然是:你在這裏使用'b'未初始化。至少'memset'它爲零,或者添加一個註釋,或者什麼,以避免關於UB的評論:-) – hyde 2014-09-25 07:26:33
您正在傳遞指向該函數的指針,但期望指針指針 – 2014-09-25 07:29:15