C # - Convertit un octet dangereux * en octet []
J'ai un unsafe
byte*
pointant vers un natif de tableau d'octets de longueur connue. Comment puis-je convertir byte[]
?
Un unsafe
sbyte*
pointant vers un zéro terminée par le natif de chaîne peut être converti en C# string
facilement, car il y a un conversion constructeur à cette fin, mais je ne peux pas trouver un moyen simple de convertir byte*
à byte[]
.
source d'informationauteur kol
Vous devez vous connecter pour publier un commentaire.
Si
ptr
est votre dangereux pointeur, et le tableau a longueurlen
vous pouvez utiliserMarshal.Copy
comme ceci:Mais je me demande comment vous est venue par un dangereux pointeur natif de la mémoire. Avez-vous vraiment besoin dangereux ici, ou vous pouvez résoudre le problème en utilisant
IntPtr
au lieu d'un dangereux pointeur? Et si oui, alors il n'y a probablement pas besoin de code unsafe.La Maréchal classe pourrait vous aider.
Je pense que vous pourriez utiliser Maréchal.Copie trop.