
Pour résumer la chose:
Une chaine de caractère c'est une suite d'octet qui démarre à l'adresse X
Une variable S contient l'adresse X, cette variable S se situe à l'adresse Y
L'opérateur @ qui permet d'obtenir l'adresse Y d'une variable retourne l'adresse X dans le cas d'une chaine.
En utilisant la Structure String il est possible de pointer sur des chaines
Un pointeur *P de type String nécessite l'adresse Y de la chaine S
il est possible de passer par un pointeur temporaire *T pour obtenir une adresse Y
(qui ne sera même pas l'adresse de S mais celle de *T)
l'utilisation du pointeur temporaire n'est donc pas fiable à 100%
Un petit code d'exemple pour l'illustrer
Code : Tout sélectionner
;déclaration des variables
s.s = "PureBasic"
*p.String
*t
;pointe sur s par l'intermédiaire de *t
*t = @s
*p = @*t
Debug *p\s ;là c'est bon
;change la valeur de s à l'aide de *p
*p\s = "Hello"
Debug s ;là c'est toujours bon
;rechange la valeur de s à l'aide de *p
*p\s = Space(10000)
Debug s ;affiche Hello au lieu d'une longue série d'espaces
@S retourne l'adresse X de la chaine
@@S retournerai l'adresse Y de la chaine
Dri
