不兼容的指针类型?奇怪的
我需要得到方程组的解。为此,我使用函数 sgesv_()。
一切都很好,它给我返回了正确的解决方案结果。
但我收到一个奇怪的警告。
警告:从不兼容的指针类型传递“sgesv_”的参数 3
我正在使用该函数,因为 Apple 在 WWDC 视频上使用它。
我做错了什么?
a1,a2,b1,b2,c1,c2 是浮点数
__CLPK_integer info;
__CLPK_integer n=2;
__CLPK_integer nb=1;
__CLPK_integer ipiv[n];
float A[n][n];
A[0][0]=a1;
A[0][1]=a2;
A[1][0]=b1;
A[1][1]=b2;
float B[n];
B[0]=-c1;
B[1]=-c2;
sgesv_(&n, &nb, A, &n, ipiv, B, &n, &info);
I need to get the solution of an equation system. For this purpose i use the function sgesv_().
Everything works great, and it retur me the right results of the solution.
But i get an strange Warning.
warning: passing argument 3 of 'sgesv_' from incompatible pointer type
I am using the function as Apple use it on the WWDC video.
What am I doing wrong?
a1,a2,b1,b2,c1,c2 are floats
__CLPK_integer info;
__CLPK_integer n=2;
__CLPK_integer nb=1;
__CLPK_integer ipiv[n];
float A[n][n];
A[0][0]=a1;
A[0][1]=a2;
A[1][0]=b1;
A[1][1]=b2;
float B[n];
B[0]=-c1;
B[1]=-c2;
sgesv_(&n, &nb, A, &n, ipiv, B, &n, &info);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
第三个参数是一个 float * ,但您传递的是一个二维浮点数组。碰巧这些浮点数的顺序是正确的。要消除警告,您可以这样做:
或这样:
甚至这样:
或者您可以“展平”您的 A 数组,例如
The third parameter is meant to be a
float *
but you're passing a 2D array of float. It just so happens that these floats are in the right order. To get rid of the warning you can do this:or this:
or even this:
Or you could just "flatten" your A array, e.g.