Supposons que j'ai:pointeur Unsafe/notation de tableau en C#
unsafe {
byte* start = GetStartLocation();
int something = start[4];
}
Qu'est-ce que something
? La valeur de l'adresse mémoire 4 octets depuis le début?
Supposons que j'ai:pointeur Unsafe/notation de tableau en C#
unsafe {
byte* start = GetStartLocation();
int something = start[4];
}
Qu'est-ce que something
? La valeur de l'adresse mémoire 4 octets depuis le début?
Say start
des points à l'emplacement de mémoire 0x12345678, et la mémoire ressemble à ceci:
0x12345678 0x12
0x12345679 0x34
0x1234567a 0x56
0x1234567b 0x78
0x1234567c 0x9a
0x1234567d 0xbc
puis something
est égal à 0x9a
.
Le fait que something
est de type int
n'a pas d'importance à la façon dont start[4]
est interprété - il obtient la valeur byte
de l'octet 4 emplacements loin de start
.
La valeur de quelque chose est la valeur d'octet du décalage 4 à partir du début élargi à un type int.
Il est équivalent au code suivant
byte temp = start[4];
int something = temp;
start[4]
évaluera à:
*(start + 4)
Merci! J'ai besoin d'entrer 15 caractères pour poster ceci, ce qui m'amène à croire que 'les remerciements en général ne sont pas autorisés, ce qui veut dire que cela sera effacé prochainement, donc j'espère que vous le verrez! Merci! –
@Sam: Personnellement, je pense que plus "merci" sur SO le mieux. N'hésitez pas à les tamponner avec des smileys si nécessaire. 8-) – RichieHindle
Il y a toujours un moyen :) –