Si je déclare un tableau avec la variable dim dans une procédure, celle-ci est normalement locale, comment la rendre globale avec shared ?
exemple:
procedure toto()
dim truc.w(20)
shared ?
endprocedure

Code : Tout sélectionner
Procedure essai()
Dim Toto(4)
Toto(2)=456
EndProcedure
essai()
Toto(1)=123
Debug Toto(1)
Debug Toto(2)
je ne comprends pas pourquoi on doit utiliser shared sur un tableau , étant donné qu'il est global ?Shared permet de rendre une variable d'une procédure accessible depuis l'extérieur. Si vous souhaitez rendre un tableau accessible de cette manière, vous devez utiliser le nom du tableau sans parenthèse.
Code : Tout sélectionner
Shared allows a variable to be accessed within a procedure.
You do not need to use the Shared command to access arrays or linked lists which were defined outside a procedure, since they are always global
Code : Tout sélectionner
Procedure test()
Dim toto(3)
toto(1)=123
EndProcedure
;test()
Toto(2)=456
Debug Toto(1)
Debug Toto(2)
Code : Tout sélectionner
Procedure test()
Dim toto(3)
toto(1)=123
EndProcedure
test()
Dim toto(3)
toto(2)=456
Debug toto(1)
Debug toto(2)
Et la version françaiseShared allows a variable to be accessed within a procedure.
You do not need to use the Shared command to access arrays or linked lists which were defined outside a procedure, since they are always global
même si j'ai du mal avec l'anglais , je crois que je vais réinstaller la doc anglaiseShared permet de rendre une variable d'une procédure accessible depuis l'extérieur.
Si vous souhaitez rendre un tableau accessible de cette manière, vous devez utiliser le nom du tableau sans parenthèse.
Donc un tableau est toujours global (Ce qui résoud le probléme de nico)Arrays are always globally accessable in PureBasic. This means that they can always be accessed from inside procedures without needing to use the Global or Shared commands.
Code : Tout sélectionner
a=10
Procedure Test()
Shared a
a=20
EndProcedure
Procedure Retest()
a=30
EndProcedure
Test()
Retest()
Debug a
Code : Tout sélectionner
Enumeration
#ELEMENT1
#ELEMENT2
#ELEMENT3
#ELEMENT4
#...
#DIMSIZE
EndEnumeration
Dim Montableau.s(#DIMSIZE)