微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C中的指针矩阵

如何解决C中的指针矩阵

我正在尝试执行以下代码

static double** updateA(double f_x0,double f_x1,double f_x2){
    double a[3][3] = {{f_x0*f_x0,f_x0,1},{f_x1*f_x1,f_x1,{f_x2*f_x2,f_x2,1}};

    return a;
}
static double** updateAc (double f_x0,double f_x2,double x0,double x1,double x2){
    double ac[3][3] = {{f_x0*f_x0,x0},x1},x2}};
    return ac;
}

static double det3x3 (double** a){
    return (a[0][0]*((a[1][1]*a[2][2]) - (a[2][1]*a[1][2])) - a[0][1]*(a[1][0]
   * a[2][2] - a[2][0]*a[1][2]) + a[0][2]*(a[1][0]*a[2][1] - a[2][0]*a[1][1]));
}

static double newx2 (double f_x0,double x2){
    double **ac = updateAc(f_x0,x0,x1,x2);
    double **a = updateA(f_x0,f_x2);
    double c = det3x3(ac)/det3x3(a);

    return c;
}

无论如何它都无法正常工作,它会编译并显示以下警告:

不兼容的指针类型从中返回“ double [3] [3]” 结果类型为“ double **”的函数

但是当我尝试执行代码时,它不起作用。我正在使用gcc作为编译器。

有人可以帮助我吗?

先谢谢您

卢卡斯

解决方法

这是 struct方法

  • 仅适用于固定大小(在这种情况下为3 * 3)
  • 尺寸是硬编码的
  • 调用方(在这种情况下,df1 <- structure(list(nombre = c("CRIST~","CRIST~","DIEGO~","Diego","TALLE~","Rub?n"),telefono1 = c(600040400L,600040400L,600530844L,600674848L,600674848L),telefono2 = c(NA,NA,FALSE,FALSE ),ads_ao = c(0L,0L,2L,0L),ads_am = c(0L,61L,311L,ads_mas = c(0L,ads_ma = c(0L,2L),total_price_ao = c(0L,59000L,total_price_am = c(0L,total_price_mas. = c(0L,total_price_ma = c(0L,22500L,59000L)),class = "data.frame",row.names = c("1","2","3","4","5","6","7","8")) 进行分配并传递一个指针。

main()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。