【问题标题】:error: incompatible types when assigning to type ‘__complex__ double *’ from type ‘complex double’错误:从“complex double”类型分配给“__complex__ double *”类型时类型不兼容
【发布时间】:2016-04-16 12:42:01
【问题描述】:

C 代码

void myfunction(double complex *x,int i1,int i2,int NN)
{
  double complex *temp0;
  double complex *temp1;
  temp1=x[NN*i1+i2];
  x[NN*i1+i2]=temp0;
}

错误

_fgt.c:381:12: error: incompatible types when assigning to type ‘__complex__ double *’ from type ‘complex double’
       temp1=x[NN*i1+i2];
            ^
_fgt.c:382:18: error: incompatible types when assigning to type ‘complex double’ from type ‘__complex__ double *’
       x[NN*i1+i2]=temp0;
                  ^

问题

我以错误的方式使用指针,但我不知道如何修复代码。我正在尝试交换指针“x”指向的二维数组中的值,但是在交换期间保存值的临时指针“temp0”和“temp 1”与指向二维数组“x”的指针类型不兼容.我该怎么办?

【问题讨论】:

    标签: python c arrays pointers types


    【解决方案1】:

    一旦您为复数双指针x[NN*i1+i2] 下标,您将取消对指针的引用并获得一个实际值,所以在这里temp0 = x[NN*i1+i2]; 您将一个双复数值分配给一个双复数指针...kaboom。

    试试这个:

    typedef complex<double> double_complex;
    
    void myfunction(double_complex *x,int i1,int i2,int NN)
    {
        // not a pointer anymore...
        double_complex temp0 = x[NN*i1+i2];
        x[NN*i1+i2] = temp0;
    }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-11
    • 1970-01-01
    • 2021-03-13
    • 1970-01-01
    • 1970-01-01
    • 2016-01-23
    • 2016-02-24
    相关资源
    最近更新 更多