x的定义为:CArray<double,double&> x ,
执行:memcpy((char *) mxGetPr(ll), (char *) x, nx*sizeof(double)) ,
编译错误如下:
     error C2440: 'type cast' : cannot convert from 'const class CArray<double,double &>' to 'char *'
如何把CArray型转换为char * ????

解决方案 »

  1.   

    你把它转化成char*?为什么?
    (char*)(void*)&x;
      

  2.   

    你要完成什么功能呀,不一定要这样memcpy吧
      

  3.   

    我要把x转换为char 然后copy给 ll,mxGetPr(ll)为我定义的得到ll的指针的函数
      

  4.   

    尤其谢谢bluebohe(薄荷),也谢谢goodsong(席今天)
      

  5.   

    我要把x转换为char 然后copy给 ll,mxGetPr(ll)为我定义的得到ll的指针的函数
    ——————————————————————不懂,请举出具体应用例子
      

  6.   

    memcpy
    不能用于有函数的对象
      

  7.   

    CArray<double,double&> Eng(const CArray<double,double&>& x,const  CArray<double,double&>& y,const CArray<double,double&>& z)
    {
    CArray<double,double&> ResultArray;
    ............
    return(ResultArray);
    }
    编译的时候出现错误:
    error C2558: class 'CArray<double,double &>' : no copy constructor available
    该如何解决?
      

  8.   

    又有问题了
    CArray<double,double&>& Eng(const CArray<double,double&>& x,const  CArray<double,double&>& y,const CArray<double,double&>& z)
    {
    CArray<double,double&> ResultArray;
    ............
    return(ResultArray);
    }
    然后 extern Eng函数
    void myfunction()
    {
    CArray<double,double&> ResultArray;
    ResultArray=Eng(....);
    }
    编译出现如下错误:
    error C2582: 'CArray<double,double &>' : 'operator =' function is unavailable为什么????怎么解决?????
      

  9.   

    to:inlinefunction(程序小生) 
    error C2039: 'Cpoy' : is not a member of 'CArray<double,double &>'
    怎么回事?
      

  10.   

    各位大哥,
    error C2039: 'Cpoy' : is not a member of 'CArray<double,double &>'
    是怎么回事啊?怎么可能不是它的子函数呢
    另再问一个问题,这是我编的从编辑框返回数组的函数:
    //返回编辑框数组
    Mm CDProgramDlg::GetArray(CEdit& eidtboxID)
    {
    int i;
    int nLineCount = eidtboxID.GetLineCount();
    Mm temp=zeros(1,nLineCount);
    CString strText;    
    // Dump every line of text of the edit control.
    for (i=0;i<nLineCount;i++)
    {
    eidtboxID.GetLine(i, strText.GetBuffer(eidtboxID.LineLength(i)));
    strText.ReleaseBuffer(eidtboxID.LineLength(i));
    temp.r(1,i+1)=atof(strText);   
    }
    return(temp);
    }我输入了5个数据,分5行。第一行和最后一行输入数超过两位可以正常显示,但是中间三行就不行,比如我输入200,它就只显示20.00000,是怎么回事啊?我的函数有错误吗?拜托了!