Array

Résolu
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 - 15 avril 2010 à 22:21
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 - 16 avril 2010 à 08:57
Salut
j'ai 2 array vector1[20] as boolean
vector2[20] as boolean
toutes les entrées pair du vector1 reçoit la valeur true autrement false
vector2 = vector1
avec le debugger j'ai verifié la valeur de
vector1[3] j'ai obtenu false
vector2[3] = true
avec le debugger j'ai verifié la valeur de
vector1[3] j'ai obtenu true

Pourquoi tout changement dans le vector2 change
le vector1 ?
Private Sub init()
Dim iter As Integer
Dim vector1(20) As Boolean
Dim vector2(20) As Boolean
For iter = 0 To 20
If iter Mod 2 = 0 Then
vector1(iter) = True
Else
vector1(iter) = False
End If
Next
vector2 = vector1
vector2(3) = True
End Sub
merci d'avance

2 réponses

cs_GG29 Messages postés 326 Date d'inscription vendredi 23 décembre 2005 Statut Membre Dernière intervention 8 février 2011 17
15 avril 2010 à 22:41
Ton "problème" est tout à fait normal. Un tableau est stocké en mémoire. vector1 est en fait un pointeur vers le tableau. Donc quand tu fais vector2 = vector1, tu copies l'adresse du premier tableau dans vector2. En gros les 2 variables pointes vers le même tableau. Donc quand tu modifies vector1 ou vector2, tu modifies le même tableau.

Pour copier un tableau comme tu aimerais le faire, il faut le parcourir et copier valeur par valeur.
For iter = 0 To 20
    vector2(iter) = vector1(iter)
Next


---
Généralement le bug se situe entre le clavier et la chaise.
Le temps est une "chose" introuvable dont l'existence ne fait aucun doute.
3
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
16 avril 2010 à 08:57
Salut
merci
J'avais oublié que ç'est la meme addresse
0
Rejoignez-nous