如果是强制转换。则只把第一个字符赋值了。unsigned short* 怎样转换 const char* ?

解决方案 »

  1.   

    那是因为unsigned short是2个字节而char是一个字节,
    而且char*作为字符串时是以0结束的。不知道你想怎么转换,两种方法:
    1.
    unsigned short* s = new unsigned short[10];
    for(int i = 0; i < 10; i++)
    s[i] = i + 97;
    char * c = new char[20]; for(int i = 0; i < 10; i++)
    c[i] = (char)s[i];
    c[10] = 0;
    2.
            char * c = new char[20];
    memcpy(c,s,20);
      

  2.   

    unsigned long inet_addr (
      const char FAR * cp  
    );