double CSpaceResectionDlg::Init_X_Value(double *init_X) 

        double initalfa; 
double initw; 
double initk; double initXS = (m_nXA+m_nXB+m_nXC+m_nXD)/4; 
double initYS = (m_nYA+m_nYB+m_nYC+m_nYD)/4; 
double initZS = m_nf*(1/m_nscale);    
    
return (double*)init_X[initXS,initYS,initZS,initalfa,initw,initk]; 
} 我想建一个返回数组的函数,数组是init_X[initXS,initYS,initZS,initalfa,initw,initk];可是出错了 
F:\2008-2009自己的程序\SpaceResection\SpaceResectionDlg.cpp(544) : error C2108: subscript is not of integral type 
F:\2008-2009自己的程序\SpaceResection\SpaceResectionDlg.cpp(544) : error C2440: 'return' : cannot convert from 'double *' to 'double' 
        There is no context in which this conversion is possible

解决方案 »

  1.   

    init_X[initXS,initYS,initZS,initalfa,initw,initk]
    是double类型 你再强制转化成double*编译器就给你错误了
    返回一个指针即可.
      

  2.   

    double* CSpaceResectionDlg::Init_X_Value(double* init_X) 

        double initalfa; 
        double initw; 
        double initk;     double initXS = (m_nXA+m_nXB+m_nXC+m_nXD)/4; 
        double initYS = (m_nYA+m_nYB+m_nYC+m_nYD)/4; 
        double initZS = m_nf*(1/m_nscale);     init_X[0] = initXS;
        init_X[1] = initYS;
        init_X[2] = initZS;
        init_X[3] = initalfa;
        init_X[4] = initw;
        init_X[5] = initk;    return init_X; 
    }