Von Byte nach char *



  • Hallihallo,
    schreibe grad an einem registry ausles programm...
    So, Registry auslesen geht, jedoch wird die Zeichenkette in nem Byte-Array gespeichert. Da das ganze auslesen in einer Funktion stattfindet deren Rückgabewert char * sein soll, muss ich das also noch konvertieren.

    Ich habe es hinbekommen dass er den String in einem char-Array speichert, durch quasi 1 zu 1 übertragen der einzelzeichen aus dem Byte-Array ins char-Array.

    Die große Preisfrag ist, wie bekomm ich das ganze nun von char [] nach char *...

    Achman, diese Zeiger und Zeichenketten machen mich ganz verrückt.
    Hoffe, einer von euch kann mir helfen.

    PS: in etwa´so sieht es aus.

    d2dp ist typ Byte-array mit 256 zeichen.
    tmp ist char-array mit 256 zeichen und tmp[i] wird d2dp[i] zugewiesen.
    so nun zu tmp2 das vom typ char * ist.
    Wie bekomm ihc den INhalt vom Array(tmp1) nach tmp2?



  • Durch einfache Zuweisung, denn ein char-Array und ein Pointer auf ein char sind eng miteinander verwandt, wie es in vielen Büchern so schön heißt.

    #include <stdio.h>
    #include <windows.h>
    
    int main()
    {
    	char tmp1[256] = {1};
    	char* tmp2 = tmp1;
    	printf(tmp2);
    	Sleep(10000);
    	return 0;
    }
    


  • ein byte wird id.r. als #define BYTE unsigned char definiert...

    d.h. ein charakter ist quasie ein byte

    char acString[5]="WEREWR";

    BYTE a= (BYTE)acString[0];



  • BorisDieKlinge schrieb:

    char acString[5]="WEREWR";

    das überlegen wir uns nochmal 🙂



  • ohh sorry bischen zu klein das array 😞


Anmelden zum Antworten