Ich möchte einen Ponter (char *ret = new char[len]) in ein Byte Array konvertieren. Da ich in c++ und pointer neu bin und vorher mit C# gerarbeitet habe kenne ich mich nicht so gut aus würde das aber gerne wissen wie und ob es geht
Von Pointer zu byte array möglich?
-
- [C++]
- Samagon
-
-
-
-
Im Prinzip ist ein char Array nichts anderes als ein Byte Array. Wofür willst du es denn als "Byte Array" haben?
-
-
Ich will die funktion nutzen:
Code- DWORD FindPattern(BYTE Pattern[], BYTE FileByteArray[], DWORD Result)
- {
- DWORD MyPosition = 0;
- DWORD ResultCounter = 0;
- for (DWORD PositionFileByteArray = 0; PositionFileByteArray < sizeof(FileByteArray) - sizeof(Pattern); PositionFileByteArray++)
- {
- bool found = true;
- for (DWORD PositionPattern = 0; PositionPattern < sizeof(Pattern); PositionPattern++)
- {
- if (FileByteArray[PositionFileByteArray + PositionPattern] != Pattern[PositionPattern])
- {
- found = false;
- break;
- }
- }
- if (found)
- {
- ResultCounter += 1;
- if (Result == ResultCounter)
- {
- MyPosition = PositionFileByteArray;
- break;
- }
- }
- }
- return MyPosition;
- }
habe den ClientByteArray als char pointer
-
Da sollte doch ein einfacher cast reichen.
-
im gegensatz zu c#(und java) ist in c++ ein char, nicht ein datentyp der einem unicode-zeichen(mehr als 8 bit) entschpricht, sondern einem Byte (=8 bit)
das ist deswegen, dass "damals" der ascii-Zeichensatz angesagt war, und für den braucht man eigentlich nur 7 bit - da das mit den Prozessoren nicht ganz zusammen passt, haben sie hald 8 bit genommen - ausserdem konnte somit auch ein erweiteter zeichensatz ermöglicht werden ... -