strcpy typedef



  • Ich benutze dev-c++ aus irgendeinen mir unbekannten grund
    kann ich die some_data (char) nicht in uncomdata (unsigned char)
    kopieren ... hat jemand eine idee???

    unsigned char *uncomdata;
    uncomdata = new unsigned char[strlen(some_data)+1];
    strcpy(uncomdata, some_data);
    

    mfg Witec



  • Warum machst du nicht bei beiden Variablen denselben Typ?



  • witec schrieb:

    hat jemand eine idee???

    ach, ich hab ganz viele davon, aber die will meistens keiner hören.

    unsigned char *uncomdata;
    uncomdata = new unsigned char[strlen(some_data)+1];
    strcpy(uncomdata, some_data);
    

    [/quote]
    da hat der compiler angst.
    am besten, du befolgst den rat von chille07.
    falls das nicht geht, kannste ihm zur not auch mal mit nem cast in die dinger treten.

    unsigned char *uncomdata;
    uncomdata = new unsigned char[strlen(some_data)+1];
    strcpy((char*)uncomdata, some_data);
    

    aber das geht nicht lange gut. irgendwann rächt er sich, wenn man das zu oft macht.



  • witec schrieb:

    Ich benutze dev-c++ aus irgendeinen mir unbekannten grund

    lol 🤡



  • wenn ich jetzt eine unsigned long wert habe...
    und auch mit einen cast zutreten? da fängt der nämlich an zu heulen
    uncomdatalength (int 😉 = strlen(uncomdata);



  • um das ganze unabhängig vom Datentyp von some_data zu machen, würde ich (wie immer) über einen stringstream gehen.
    like:

    unsigned char *uncomdata;
    double some_data=2.34;   //egal ob double, int oder char
    strstream tempStr;
    string tempS;
    
    tempStr<<some_data;
    tempStr>>tempS;
    
    uncomdata = new unsigned char[tempS.length()+1];
    
    tempStr.clear();
    tempStr<<some_data;
    tempStr>>uncomdata;
    


  • ich habe es jetzt so gelöst..

    unsigned long comdatalength;
    uncomdatalength = strlen((char *)uncomdata);
    

    danke an alle!



  • für Längen angaben nimmt man den Typ size_t und nicht unsigned long


Anmelden zum Antworten