So setzen Sie ein int auf byte* C#
-
13-09-2020 - |
Frage
Wie kann ich an einem bestimmten Index in einem Byte* ein int in ein Byte* umwandeln?
Idealerweise hätte ich gerne so etwas wie:
unsafe{
byte* igm=stackalloc byte[8];
igm[4]=4283;
}
Es würde den ersten Teil des Bits auf igm[4] und den Rest auf igm[5] setzen.
Bearbeiten:Mir ist klar, dass es viele Möglichkeiten gibt, damit umzugehen. Ich suche nach dem effizientesten Weg, wenn möglich.
Lösung
Versuchen Sie das:
generasacodicetagpre.Wenn Sie feststellen, dass Sie einfache Zeiger-Arithmetik verwenden können, um irgendwo in Ihrem Byte-Array zu indexieren, werden die Dinge viel einfacher.
Andere Tipps
Das Typsystem in C # wird daran hindern, dass Sie das tun, wie Sie vielleicht bemerkt haben.Sie können jedoch Ihre Zeiger werfen, um die atmutigen Typen zu sein:
generasacodicetagpre.Sie müssen Ihr Int brechen sizeof(int)
Anzahl der Bytes und setzen Sie diese Teile dann manuell auf Ihr Byte* an angegebenen Indizes.
Dies ist sicherer, da Sie wissen, WAS und WO Sie Ihre Daten speichern.