重複の可能性:
C で関数の引数として多次元配列を渡す
一般的なスワップ機能を使用しようとしています:
void swap(void **p, void **q){
void *tmp;
tmp=*p;
*p=*q;
*q=tmp;
}
int main(){
int M=5;
int N=6;
char*w[M][N];
swap(&w[1][2], &w[2][2]);
return 0;
}
w はすでに値で初期化されていると仮定しましょう。引数を送信する方法についてのみ疑問に思っています
この場合、スワップに引数を送信する方法を理解しようとしています。
N=M=2 と仮定しましょう。だから私は{{"stack", "overflow"},{"best", "site"}}のようにwを持っています
- swap(w[i][j],w[k][r])は正しいオプションではありません。w[i][j] は実際の文字列への参照であり、swap は w[i] のみが **void を取得するためです。 [j] は *char のみへのポインタなので、
- swap(&w[i][j], &w[k][r])は適切なオプションのようです。char* へのポインターなので、互換性のないポインター型からスワップの引数を渡します。どうしてですか?