Je crée un tableau comme ci-dessous:Lors de la création d'un tableau dans une structure, cette structure contient-elle directement la valeur du tableau ou la référence de mémoire de ce tableau?
public struct Smb_Parameters
{
public byte WordCount;
public ushort[] Words;
}
Alors que j'assigner les valeurs comme ci-dessous:
Smb_Parameters smbParameter = new Smb_Parameters();
smbParameter.WordCount = 0;
string words= "NT LM 0.12";
smbParameter.Words = Encoding.ASCII.GetBytes(name);
Dans l'affectation ci-dessus smbParameter.WordCount
contient la valeur 0
mais ne smbParameter.Words
contient directement les valeurs (Arry de byteS) ou une référence mémoire à l'emplacement qui contient les valeurs?
Edit 1:
Je veux envoyer un paquet au serveur. Pour cela, je dois convertir objet Smb_Parameters
à un tableau en utilisant le code suivant:
int len = Marshal.SizeOf(Smb_Parameters);
byte[] arr = new byte[len];
IntPtr ptr = Marshal.AllocHGlobal(len);
Marshal.StructureToPtr(Smb_Parameters, ptr, true);
Marshal.Copy(ptr, arr, 0, len);
Marshal.FreeHGlobal(ptr);
Voir la réponse de Jon. – NullUserException
Juste un détail, mais je ferais que 'ushort WordCount' et' byte [] Words'. –