Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1423 connectés 

  FORUM HardWare.fr
  Programmation

  [VC++] Stack overflaw

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VC++] Stack overflaw

n°32597
juldjin
Posté le 17-05-2001 à 13:58:33  profilanswer
 

j'ai fais une fonction de récurtion qui a mon avis ne plante pas, mais requiert un nombre tres important de recursions, mon prog marche plus à la 17151 eme.
 
est ce que l'on peut agrandir le truc stack ou pas ?


---------------
"l'homme est un loup pour l'homme"
mood
Publicité
Posté le 17-05-2001 à 13:58:33  profilanswer
 

n°32598
BENB
100% Lux.
Posté le 17-05-2001 à 14:00:34  profilanswer
 

juldjin a écrit a écrit :

j'ai fais une fonction de récurtion qui a mon avis ne plante pas, mais requiert un nombre tres important de recursions, mon prog marche plus à la 17151 eme.
 
est ce que l'on peut agrandir le truc stack ou pas ?




Oui on peut :D
Mais est-il raisonnable de faire plus de 17150 recursions ?

n°32600
juldjin
Posté le 17-05-2001 à 14:02:15  profilanswer
 

ben dans la mesur ou je doit reconnaitre des formes de tres grandes tailles sur des images de tres grandes tailles, je n'ai pas trop le choix... :sarcastic:

n°32604
wpk
Posté le 17-05-2001 à 14:09:08  profilanswer
 

si, y'a toujours le choix ;)
soit tu derecurssifie a la main et la c'est toi qui gere la taille de la pille (c'est pas dur, faut juste etre methodique)
soit tu changes d'algo

 

[edit]--Message édité par wpk--[/edit]

n°32605
juldjin
Posté le 17-05-2001 à 14:12:36  profilanswer
 

voici ma fonction qui compte le nombre de pixels par formes :
 
void MONIMAGESEGM::compte(int x,int y,int &somme)
{  
   if (x<0 || x>=im.tailleX || y<0 || y>=im.tailleY)  
      return; // si les coordonnées de la case à tester ne sont pas valides  
   else if (temp[x][y] == -1 || temp[x][y] == 1)  
      return; // si la case a déjà été marquée ou n'appartient pas à la forme  
   else  
   {  
      temp[x][y]=1; // on marque la case  
      somme++;  // on ajourte 1 au nombre de pixels de la forme  
   
   if(x > 0) compte(x-1,y,somme);
   if(x < im.tailleX - 1) compte(x+1,y,somme);
   if(y > 0) compte(x,y-1,somme);
   if(y < im.tailleY - 1) compte(x,y+1,somme);
   if(x > 0 && y > 0) compte(x-1,y-1,somme);
   if(x > 0 && y < im.tailleY - 1) compte(x-1,y+1,somme);
   if(x < im.tailleX - 1 && y > 0) compte(x+1,y-1,somme);
   if(x < im.tailleX - 1 && y < im.tailleY - 1) compte(x+1,y+1,somme);
   }  
}  
 
imaginé si une forme fait la moitié d'une image de 1024*768... :cry:  :cry:  :cry:  :cry:

n°32606
juldjin
Posté le 17-05-2001 à 14:12:44  profilanswer
 

voici ma fonction qui compte le nombre de pixels par formes :
 
void MONIMAGESEGM::compte(int x,int y,int &somme)
{  
   if (x<0 || x>=im.tailleX || y<0 || y>=im.tailleY)  
      return; // si les coordonnées de la case à tester ne sont pas valides  
   else if (temp[x][y] == -1 || temp[x][y] == 1)  
      return; // si la case a déjà été marquée ou n'appartient pas à la forme  
   else  
   {  
      temp[x][y]=1; // on marque la case  
      somme++;  // on ajourte 1 au nombre de pixels de la forme  
   
   if(x > 0) compte(x-1,y,somme);
   if(x < im.tailleX - 1) compte(x+1,y,somme);
   if(y > 0) compte(x,y-1,somme);
   if(y < im.tailleY - 1) compte(x,y+1,somme);
   if(x > 0 && y > 0) compte(x-1,y-1,somme);
   if(x > 0 && y < im.tailleY - 1) compte(x-1,y+1,somme);
   if(x < im.tailleX - 1 && y > 0) compte(x+1,y-1,somme);
   if(x < im.tailleX - 1 && y < im.tailleY - 1) compte(x+1,y+1,somme);
   }  
}  
 
imaginé si une forme fait la moitié d'une image de 1024*768... :cry:  :cry:  :cry:  :cry:

n°32614
verdoux
And I'm still waiting
Posté le 17-05-2001 à 14:27:43  profilanswer
 

Ouais ben c'est un boulot de sagouin :D

n°32624
wpk
Posté le 17-05-2001 à 14:42:38  profilanswer
 

surtout qu'il y'a des methodes topologiques pour faire ca... et t'as plus du tout de recurss.

n°32626
darkoli
Le Petit Dinosaure Bleu
Posté le 17-05-2001 à 14:45:03  profilanswer
 

je pense qu'il est possible d'ameliorer un peu cet algo et c'est evident que pour ce genre de probleme, la recursivité n'est pas le meilleur choix (meme si c'est plus facile a programmer).
 
Faut reflechir un peu en fait !!!

n°32627
juldjin
Posté le 17-05-2001 à 14:47:29  profilanswer
 

ouais mais moi je suis pas un maitre en algorithmes :jap:  
 
apres je vais exporter les formes en .shp alors respect comme meme pour un stagiaire de dut info...
 
merci
 
et si vous avez d'autres solutions a me proposer faites offre


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [VC++] Stack overflaw

 

Sujets relatifs
Plus de sujets relatifs à : [VC++] Stack overflaw


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR