以下のように定義された2次元配列の2行を交換したい。
double (*mat)[N];
mat = (double(*)[N])malloc(m*sizeof(double [N]));
...
swap(mat, mat+1);
しかし、私swap(mat, mat+1);
は各行の最初の要素のみを交換します。
void swap(double **a,double **b){
double *temp;
temp = *a;
*a = *b;
*b = temp;
}
double **mat;
動的に割り当てられた行と行で定義された 2D 配列を使用すると、同じスワップが機能します。