CSendNode类有一个构造函数
CSendNode(char *cpSendbuf,int nSendSz){
m_cpSendbuf=(char*)malloc(nSendSz*sizeof(char));
memcpy(m_cpSendbuf,cpSendbuf,nSendSz); m_nSendSz=nSendSz;
m_pNext=NULL;
};
我在程序的某个地方构造CSendNode类如下
CSendNode *pNode=new CSendNode((char*)cp,nLen);系统显示出一个错误提示
error C2665: 'new' : none of the 4 overloads can convert parameter 2 from type 'unsigned char [17]'那位有空帮我分析一下错误原因好么??

解决方案 »

  1.   

    这个错误应该是你在指针或是两个字符串变量赋值时出来的,找一找看看出来哪吧!看上你面的代码,想问你m_cpSendbuf是什么类型的指针???nSendSz你给的值是多少?如果你定义的如下形式:unsigned char m_cpSendBuf;或类似的情况,那是因为你的变量类型不对,建立你统一起来,如果需要,你可以选择用memcpy()转化.
      

  2.   

    CSendNode *pNode=new CSendNode(cp,nLen);你写成这样就可以了
      

  3.   

    你的错应该是声明了char cp[17];
    cp就是代表了一个char *了
      

  4.   

    不是这些原因的,我还一个类这么写一点错误都没有,但是只要放在我的工程中某个特定的类里面就一定会显示上面的错误的,所以我现在在别的类里面弄一个函数,目的就是新建CSendNode节点的,然后我在那个特定的类里面调用函数,这样就编译通过了,不过真正引起错误的原因我现在还是不知道的!