Petite astuce avec les pointeurs
Publié : ven. 17/mars/2017 21:30
Imaginons que vous avez les variables suivantes,
Et que vous vouliez dans une boucle modifier les dites variables , hum comment faire ?
Voici une exemple avec l'utilisation de pointeurs
Pour que ce système fonctionne il faut impérativement que
Code : Tout sélectionner
Global MaVariable_1.l=0,MaVariable_2.l=0,MaVariable_3.l=0,MaVariable_4.l=0
Voici une exemple avec l'utilisation de pointeurs
Code : Tout sélectionner
Global MaVariable_1.l=0,MaVariable_2.l=0,MaVariable_3.l=0,MaVariable_4.l=0
Procedure teste(*pt)
Protected i
For i=0 To 3
PokeL(*pt+i*4,100 * i) ;4 représente la taille en octet d'un long
Next
EndProcedure
teste(@MaVariable_1)
OpenConsole("Teste")
Print("Valeur de ma variable 1: ")
PrintN(Str(MaVariable_1))
Print("Valeur de ma variable 2: ")
PrintN(Str(MaVariable_2))
Print("Valeur de ma variable 3: ")
PrintN(Str(MaVariable_3))
Print("Valeur de ma variable 4: ")
PrintN(Str(MaVariable_4))
Input()
CloseConsole()
- Les variables soit de même type
- Les variables soit déclarée l'une à la suite des autres
Code : Tout sélectionner
Global MaVariable_1.l=0,MaVariable_2.l=0,MaVariable_3.l=0,MaVariable_4.l=0
Procedure teste(*pt)
EnableASM
MOV ebx,0
!bcl_deb:
MOV eax,dword[p.p_pt]
CMP ebx,4
JE bcl_fin
MOV ecx,100
IMUL ecx,ebx
MOV dword[eax + ebx *4],ecx
INC ebx
JMP bcl_deb
!bcl_fin:
DisableASM
EndProcedure
teste(@MaVariable_1)
OpenConsole("Teste")
Print("Valeur de ma variable 1: ")
PrintN(Str(MaVariable_1))
Print("Valeur de ma variable 2: ")
PrintN(Str(MaVariable_2))
Print("Valeur de ma variable 3: ")
PrintN(Str(MaVariable_3))
Print("Valeur de ma variable 4: ")
PrintN(Str(MaVariable_4))
Input()
CloseConsole()