Rechercher : dans
Par :

Tableaux : allocation dynamique de sa mémoire

Dernière réponse le 7 jan 2008 à 16:21:54 davdoo91, le 28 déc 2007 à 13:04:56 
 Signaler ce message aux modérateurs

Bonjour,

Je souhaiterai allouer dynamiquement de la mémoire à un tableaux.
Je m'explique : j'aimerai stocker des données o fure et a mesure que l'utilisateur rentre ces dernières sans connaitre le nombre de données que l'utilisateurs vas rentrer.

voici le programme que je souhaiterai faire (qui évidement qui ne marche pas) :

float prixInitial[];
int i=0;
cout<< "Entrez les pix initiaux"<<endl<<"tapez 0 pour arréter la saisie"<<endl;
while (1)
{
cin>>prixInitial[i];
if(prixInitial[i]==0) { break;}
else i++;
En vous remerciant devotre aide future

DAVID

Configuration: Linux
Firefox 2.0.0.11

1

SebManfred, le 28 déc 2007 à 13:31:51

à la vue de ton code, oui, mais je demande tout de même pour être sûr : c'est du C?
si oui, la réponse est : liste chainée, malloc et free

Répondre à SebManfred

2

davdoo91, le 28 déc 2007 à 14:01:43

Non du c++

Répondre à davdoo91

3

SebManfred, le 28 déc 2007 à 15:00:43

C'est pareil côté allocation mémoire, pointeurs et syntaxe (excepté la partie objet, mais apparament ici, il n'en est pas question)
donc même réponse : liste chainée

Répondre à SebManfred

4

davdoo91, le 28 déc 2007 à 16:17:49

Et avec des vecteurs ca ne serais pas plus simple?

Répondre à davdoo91

5

 SebManfred, le 7 jan 2008 à 16:21:54

Tu ne peux pas faire varier la taille d'un tableau (vecteur) après sa déclaration.
tu peux, si tu veux, déclarer un très grand tableau, et mettre après ton dernier enregistrement une valeur caractéristique, une "valeur de fin", mais ça a plusieurs inconvénients :
- ça te mobilise de l'espace mémoire
- tu ne peux pas dépasser un certain seuil (il faut donc bien calculer la taille maximale de ton tableau)
- il ne faut surtout pas que ta valeur de test de fin puisse subvenir comme valeur à stocker
- c'est pas propre, comme façon de faire
bref, sincèrement, l'allocation dynamique, pour moi, le mieux, c'est les listes chainées.
sincèrement, c'est pas compliqué, il suffit juste de ne pas s'emmêler les pinceaux.

Répondre à SebManfred