Третий параметр должен быть float *
, но вы передаете 2D-массив с плавающей точкой. Так уж вышло, что эти поплавки находятся в правильном порядке. Чтобы избавиться от предупреждения, вы можете сделать это:
sgesv_(&n, &nb, &A[0][0], &n, ipiv, B, &n, &info);
или это:
sgesv_(&n, &nb, A[0], &n, ipiv, B, &n, &info);
или даже это:
sgesv_(&n, &nb, (float *)A, &n, ipiv, B, &n, &info);
Или вы могли бы просто "сгладить" ваш массив A, например
float A[n * n];
A[0 * n + 0] = a1;
A[0 * n + 1] = a2;
A[1 * n + 0] = b1;
A[1 * n + 1] = b2;
// ...
sgesv_(&n, &nb, A, &n, ipiv, B, &n, &info);