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
