A voir également:
- Allocution de memoire
- Mémoire vive - Guide
- L'état de la mémoire ne peut pas être written - Astuces et Solutions
- Test memoire pc - Guide
- Mémoire virtuelle - Guide
- Vider memoire iphone - Guide
8 réponses
maily
Messages postés
7556
Date d'inscription
lundi 26 juin 2000
Statut
Contributeur
Dernière intervention
23 juin 2023
453
14 juin 2005 à 16:11
14 juin 2005 à 16:11
Bonjour!
Quel langage?
Quel langage?
p.legal
Messages postés
88
Date d'inscription
mardi 14 juin 2005
Statut
Membre
Dernière intervention
21 mars 2008
24
14 juin 2005 à 22:45
14 juin 2005 à 22:45
Salut,
premier point, on dit allocation de mémoire.
ensuite, pour ton problème, il suffit de faire deux tours de boucle.
au premier tour tu compte le nbre de colonne, puis tu dimensionne ton tableau et enfin tu refais un passage pour le remplir.
Voici un shema de ce que ça doit donner :
Ce code est basé sur la syntaxe de Liberty BASIC mais tu peux l'adapter à nimporte quel langage.
@++
Liberty BASIC France : http://lbasic.atomysk.com
Le forum d'aide :http://lbasic.atomysk.com/forum/
premier point, on dit allocation de mémoire.
ensuite, pour ton problème, il suffit de faire deux tours de boucle.
au premier tour tu compte le nbre de colonne, puis tu dimensionne ton tableau et enfin tu refais un passage pour le remplir.
Voici un shema de ce que ça doit donner :
compteur=0 for i=1 to nbreBoucle if (condition verifiée) then compteur=compteur+1 end if next i dim tableau$(compteur) compteur=0 for i=1 to nbreBoucle if (condition verifiée) then compteur=compteur+1 tableau$(compteur)=variable$ end if next i
Ce code est basé sur la syntaxe de Liberty BASIC mais tu peux l'adapter à nimporte quel langage.
@++
Liberty BASIC France : http://lbasic.atomysk.com
Le forum d'aide :http://lbasic.atomysk.com/forum/
ryu34
Messages postés
15
Date d'inscription
mardi 14 juin 2005
Statut
Membre
Dernière intervention
8 juillet 2005
16 juin 2005 à 09:52
16 juin 2005 à 09:52
Merci je travaille en c. Ca me semble bien la solution de p.legal mais ca implique de faire 2 fois la meme boucle une pour trouver le nombre de solution et une pour remplir mon tableau, c un peu repétitif je trouve mais n'ayant pas d'autre solution pour l'instan je vai faire cet methode.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
en c tu peux definir une structure exemple
par exemple:
typedef struct tdoublet
{
int (ou ce que tu veux) variable;
tdoublet *suivant;
}
cette structure te permet de créer chaque élément 1 à un ( en utilisant l'allocation memoire).
par exemple pour creer un element a chaque saisie:
main()
{
int element;
tdoublet *pointeur;
pt=NULL;
for(int i=0;i<8;i++)
{
printf("veuillez entrez un élément");
scanf("%d",element);
pointeur=saisie(pointeur,element);
}
free(pt);
}
et la fonction saisie :
tdoublet *saisie(tdoublet *pt,int nombre )
{
tdoublet *pt2;
if(pt==NULL)
{
pt=(tdoublet*)malloc(1*sizeof(tdoublet));
pt->variable=nombre;
pt->suivant=NULL;
return(pt);
}
else
{
pt2=(tdoublet*)malloc(1*sizeof(tdoublet));
pt2->variable=nombre;
pt2->suivant=NULL;
pt->suivant=&pt2;
pt2=pt;
return(pt2);
}
}
je sais pas si ca repond a ta question mais ce permet donc de créer un élément em mémoire à chaque sasie.
par exemple:
typedef struct tdoublet
{
int (ou ce que tu veux) variable;
tdoublet *suivant;
}
cette structure te permet de créer chaque élément 1 à un ( en utilisant l'allocation memoire).
par exemple pour creer un element a chaque saisie:
main()
{
int element;
tdoublet *pointeur;
pt=NULL;
for(int i=0;i<8;i++)
{
printf("veuillez entrez un élément");
scanf("%d",element);
pointeur=saisie(pointeur,element);
}
free(pt);
}
et la fonction saisie :
tdoublet *saisie(tdoublet *pt,int nombre )
{
tdoublet *pt2;
if(pt==NULL)
{
pt=(tdoublet*)malloc(1*sizeof(tdoublet));
pt->variable=nombre;
pt->suivant=NULL;
return(pt);
}
else
{
pt2=(tdoublet*)malloc(1*sizeof(tdoublet));
pt2->variable=nombre;
pt2->suivant=NULL;
pt->suivant=&pt2;
pt2=pt;
return(pt2);
}
}
je sais pas si ca repond a ta question mais ce permet donc de créer un élément em mémoire à chaque sasie.
ou encore faire une fonction qui te permet de définir le nombre de cases de ton tableau(lignes et colonnes) que tu veux creer, puis une fonction qui te permet de créer ce tableau et retourne une adresse sur celui ci.
je pense que ca peut marcher
je pense que ca peut marcher
ryu34
Messages postés
15
Date d'inscription
mardi 14 juin 2005
Statut
Membre
Dernière intervention
8 juillet 2005
16 juin 2005 à 10:40
16 juin 2005 à 10:40
Ce n'est pas exactement ca. Je vais me m'expliquer je dois aller d'un point A à un point B avec un pas. Je réalise une boucle while pour déterminer toutes les valeurs intermédiaires (boucle while obligatoire car je ne connais pas le nombre de pas qu'il faut pour y aller). Si il existe une solution ce qui n'est sur a tout les coup ds mon probleme (contrainte de butée de mon bras manipulateur) alors j'autorise le déplacement pour cela je dois disposer de toute mes valeurs intermediaire pour les envoyer. Je souhaite mettre ces valeur dans un tableau (dont au départ je ne connai pas la taille) pour ensuite les récuperer. Je ne veut pas me déplacer en meme temps car si ce n'est plus possible d'aller au point B ca nira pas.
p.legal
Messages postés
88
Date d'inscription
mardi 14 juin 2005
Statut
Membre
Dernière intervention
21 mars 2008
24
16 juin 2005 à 10:58
16 juin 2005 à 10:58
Si tu connais le nombre maxi de deplacements, tu peux aussi allouer de la memoire à un tableau intermediaire de taille maximum, puis faire ta recherche et une fois obtenu une reponse valide, creer un tableau à la bonne dimension puis recopier les valeurs à partir de ton tableau intermediaire que tu supprime aussitôt après.
@++
Liberty BASIC France : http://lbasic.atomysk.com
Le forum d'aide :http://lbasic.atomysk.com/forum/
@++
Liberty BASIC France : http://lbasic.atomysk.com
Le forum d'aide :http://lbasic.atomysk.com/forum/
Tu peux aussi utiliser un vecteur. Tu crée une sctruture ou tu met tes variables et tu fais un vecteur de la structure, à chaque tour dans la boucle while un push_back, là il n'y a pas besoin de connaitre la taille de quoi que ce soit, et ce sera moins couteux en mémoire que de dupliquer le tableau.
Autrement peut-être qu'avec des truc genre char** tab[] tu peux t'en sortir mais là je maitrise pas bien le sujet encore ;)
Et autrement si tu utilise des malloc (probable que non) tu peux faire des realloc.
Autrement peut-être qu'avec des truc genre char** tab[] tu peux t'en sortir mais là je maitrise pas bien le sujet encore ;)
Et autrement si tu utilise des malloc (probable que non) tu peux faire des realloc.