Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

Messages recommandés

Posté(e)

Suite a un petit probleme independant de am volonte, je voudrais rajouter la phrase manquante au debut de mon dernier message :

 

 

j'aimerais remrcier ...monsieur Leneuf22 ...pour tous ces excellents conseils .......

 

voila !!!...lol

 

merci !

Posté(e)

Ya un truc qui m'échappe là... est-ce que tu peux nous assurrer que N contient bien la valeur attendue ? (juste pour être sur, car Lire.i() ça me parait un peu bizarre, c'est pas sensé être en anglais ? C'est une fonction à toi ?)

 

Sinon tu devrais remplacer

while (j < tab2.length)

 

par

 

while (j < N)

 

Simple précaution, qui t'évitera de planter ton programme si tu spécifies une taille plus petite :P

Posté(e)

oui..... Lire est une classe cree par mon professeur.

Et ....changer "tab2.length" par "N" revient de toute facon au meme.

 

nico_be m'a donne la solution au probleme...alors maintenant, ca fonctionne. Mais il me reste encore a regler le probleme que tu as souleve dans ton 1er envoie : le fait que si je veux creer un tableau plus petit, ca ne va pas. Il faut que j'arrive a faire ca !

Posté(e)

bon.... ok ...d'accord...autant pour moi...ce n'est peut etre pas tout a fait la meme chose!

merci encore une fois pour cette remarque.

 

mais il y a toujours un probleme!....si je fais un affichage des valeur de ma pile....hmmm...elles s'affichent mais le programme s'arrete parce qu'il ya tout de meme une erreur !

Posté(e) (modifié)

Tu pourrais donner la réponse stp ? Ça m'interesserait de comprendre :P

Sinon je sais pas pour l'erreur, j'ai jamais fait de Java de ma vie (j'ai juste lu un ptit tutorial de POO qui reposait sur du Java !)

 

 

edit : grillé :-(

Modifié par leneuf22
Posté(e) (modifié)

Voila !!!!!

 

 

 

//*** Methode Redim ***/

static void Redim()

{

//Declaration et reservation de l'espace memoire pour le second tableau plus grand

// dans lequel seront transferes les elements

int N;

System.out.println();

System.out.print("Entrez une taille pour la pile : ");

N = Lire.i();

int[] tab2 = new int [N];

int i = 0;

 

while (i < N) //on place les elements de tab dans tab2

{

tab2 = tab;

i++ ;

}//end for

 

tab = null; //efface tab

 

tab = tab2;

 

tab2 = null; //efface tab2

 

//Message de confirmation

System.out.println(" *** TAILLE DE LA PILE MODIFIEE *** ");

System.out.println();

}//end Redim

Modifié par C.J.
Posté(e) (modifié)

Supposons que le GC de ta JVM soit mal fichu (ou que Java soit mal fichu tout court)

tab2 = null; //efface tab2

 

Imaginons que tu aies raison et que tab2 soit libéré, alors tab pointerait vers une zone mémoire qui ne t'appartient plus (car tab pointe vers la même adresse que tab2), et dans ce cas, boum !

 

Car une affectation de n'importe quoi en Java, je crois bien que c'est uniquement comme une affectation de pointeurs en C/C++... mais je peux me tromper

Modifié par leneuf22
Posté(e)

Ben...moi, je ne fais pas de C alors je ne sais pas comment ca fonctionne mais ici, tu peux effacer tab2 puisque tu as mis toutes ces vaeurs dans tab.

tu ne fais l'effacement qu'a la fin de la methode alors tu n'as plus besion des valeurs que tab2 contient.

Posté(e)

Ha béh non, justement, je viens de chercher un peu, tab et tab2 pointent vers la même zone mémoire.

Si tu supprimes tab2, tu supprimes tab (et inversement)

 

Enlève la ligne en question pour voir (tu n'as rien à perdre de toute façon !)

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...