Bonjour , j’ai un probleme avec un de mes programme en C++
quand on arrive dans la boucle while au bout de la deuxieme iteration n passe brusquement a 1077280748 , et je ne vois pas du tout pourquoi ! je ne touche pas a n dans la boucle . et i reste a 1 sur 2 iteration avant de passer a 2
int main(int argc, char *argv[])
{
int n=0, i=0;
double x1;
double*liste;
liste = &x1;
cout<<"entrer la valeur de n:"<<flush;
cin>>n;
cout<<n<<endl;
while(i<n)
{
cout<<"entrer la valeur"<<endl;
cin>>(*liste);
cout<<"adresse de liste"<<liste<<"adresse de x1"<<&x1<<endl;
liste = liste+1;
i++;
merci d’avance
Edité le 19/11/2007 à 14:53
ta liste n’est pas une liste
Ca marche pour le premier tour car liste = &x1 mais une fois que tu as fais liste=liste+1, ton pointeur pointe n’importe ou en mémoire.
Soit tu alloues la mémoire pour chaque nouvel element de la liste, soit tu utilise un vecteur, ou une liste STL.
dequeue liste;
et tu ajoute ta donnée par liste.push_back(nouvelle valeur)
en fait c pour un tp, il demande d’ecrire une fonction qui affiche une liste de double
la fonction d’affichage doit avoir ce prototype
void print_liste(int nombre , double x1 , …)
avec nombre le nombre de nombre de la liste et print_liste une fonction a nombre d’argument variable.
alors je ne sais pas trop comment utilisé ce genre de fonction
et il dit qu’il faudra utiliser un pointeur double*liste dont la valeur sera initialement a &x1
est ce que vous pourriez m’aider svp
C’est galère les arguments variables, il y a des exemples sur ce sujet: cf.
www.clubic.com…
(edit: perso pour faire ça, je me contenterais d’un “void fonction(int nb, double values[])” )
Edité le 20/11/2007 à 13:20