Bonjour,
En montrant un bout de code à quelqu'un je suis tombé sur un dépassement de capacité que je ne m'explique pas, j'ai un tableau déclaré en Long que je remplis avec une boucle via un compteur déclaré en Long et j'obtiens un dépassement de capacité pour compteur = 16384.
La seule explication logique que je vois pour cela se produise serait que 2*compteur=32768 et que compteur prenne temporairement la valeur 32768 qui dépasse la valeur d'un Integer mais pourtant tableau est déclaré en long... et non en Integer, donc je ne dépasse pas la capacité de tableau...
Du coup je ne vois pas pourquoi cela ce produit... Avez vous une idée ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Option Explicit Sub test() Dim tableau(30000, 5) As Long '-2147483648 à 2147483647 Dim compteur As Long '-32768 à +32767 For compteur = 1 To UBound(tableau, 1) tableau(compteur, 0) = 2 * compteur Next compteur End Sub
Partager