|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre Expert
![]() Autodidacte Inscription : mars 2006 Messages : 1 175 ![]() |
Bonjour,
J'ai un tableau à 2 dimensions que je souhaite initialiser à '0'. Ce tableau est transmis en paramètre d'une méthode dont voici la partie du code qui nous intéresse: Code :
Bien sûr, je pourrais utiliser la propriété length du tableau est faire 2 boucles for imbriquées: Code :
__________________
@ bientôt... Salut & @+ sur 3W!
|
||||
|
|
00
|
|
|
#2 | ||
![]() ![]() Développeur Java/Web Inscription : avril 2002 Messages : 12 460 ![]() |
Salut,
Tu ne peux pas modifier les éléments d'un tableau avec le for étendus. Les valeurs sont simplement stocké dans une variable locale, que tu n'utilise pas (d'où le warning). Mais bon le plus simple serait d'utiliser Arrays.fill() : Code :
a++
__________________
adiGuba [ tutoriels | blog | twitter ] Rédacteur/Modérateur Java |
||
|
30
|
|
|
#3 | |||
|
Membre éclairé
![]() Développeur Java Inscription : mars 2003 Messages : 511 ![]() |
Citation:
La ligne élément = 0; ne met pas une des case de ton tableau à 0 mais fait juste pointé ton paramètre élément sur l'espace en mémoire qui vaut 0 pour un short .... Sachant que de base le tableau va être initialisé à 0 quoiqu'il arrive (valeur par défaut des type primitifs numérique)
__________________
(Bio)informaticienne folle ... MOUWAWAWAWA Geekette fan de Marcus et de Nolife !! Jeune Maman |
|||
|
|
10
|
|
|
#4 | |||
|
Membre Expert
![]() Autodidacte Inscription : mars 2006 Messages : 1 175 ![]() |
Bonjour et merci de m'avoir répondu rapidement,
Citation:
D'après ce que j'ai cru comprendre, seuls les éléments primitifs sont copiés localement sur la pile. Ce qui fait que la modification de leurs valeurs n'est vue que localement. Par contre, lorsque ce sont des objets (et les tableaux en font partie), c'est l'adresse de l'objet qui est passée. Du coup, la fonction appelée travail réellement sur l'objet situé à cette adresse. Votre réponse m'a peut être mis sur la piste : peut être que le compilateur ne saisit pas cette astuce. Les objets ligne[] et element sont créés juste pour la boucle d'initialisation. De ce point de vue, ils sont mis à '0' et jamais utilisés par la suite puisque leur portée est simplement cette boucle. D'où l'avertissement. En réalité, ces zones mémoires sont ensuite remplies par des valeurs, mais elles sont adressées explicitement, genre Code :
tablo_pointage[ index1 ][ index2 ] = 36; En ce qui concerne ce petit désagrément, j'ai aussi trouvé ceci: Code :
__________________
@ bientôt... Salut & @+ sur 3W!
|
|||
|
|
00
|
|
|
#5 | |||
![]() ![]() Développeur Java/Web Inscription : avril 2002 Messages : 12 460 ![]() |
Citation:
Code :
Comme indiqué par Lady, cela vient surement du fait que les tableaux sont initialisé à zéro par défaut... a++
__________________
adiGuba [ tutoriels | blog | twitter ] Rédacteur/Modérateur Java |
|||
|
10
|
Copyright © 2000-2012 - www.developpez.com