Array

[Résolu]
Signaler
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
-
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
-
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

Messages postés
326
Date d'inscription
vendredi 23 décembre 2005
Statut
Membre
Dernière intervention
8 février 2011
17
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.
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
52
Salut
merci
J'avais oublié que ç'est la meme addresse