可能重复:
在 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;所以我有 w 看起来像 {{"stack", "overflow"},{"best", "site"}}
- swap(w[i][j],w[k][r])不是正确的选项,因为 w[i][j] 是对实际字符串的引用,而 swap 得到 **void,其中只有 w[i] [j] 是一个只指向 *char 的指针,所以
- swap(&w[i][j], &w[k][r])看起来是正确的选择。因为它是一个指向 char* 的指针,但是我从不兼容的指针类型中得到了交换的参数,怎么会?