Bonjour tout le monde ...
J'ain un petit pb ac un prog basique gérant des tableaux par classe...
La compilation ac c++ marche nikel
sauf ke kan j'utilise le case 1 du switch ... il me met
Erreur segmentation...
L'erreur doit etre vraiment basique mais je ne la trouve pas ...
Merci d'avance a ceux ki auront la patience de se mettre dedant !
Fitzdsl  
 
 
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
 
class tableau
{
private :  int nbelmt;
 	float *v;
 
public : tableau(int n)
 	{
 	if(n<=0)
   {
   printf("Erreure création du tableau\n" );
   exit(1);
   }
 	nbelmt=n;
 	v=new float[nbelmt];
 	if(v==0)
   {
   printf("Erreure allocation du tableau\n" );
   exit(2);
   }
 	}
 
 tableau()
 	{
 	nbelmt=10;
 	v=new float[nbelmt];
 	if(v==0)
   {
   printf("Erreure allocation du tableau\n" );
   exit(2);
   }
 	}
 
 ~tableau()
 	{
 	delete v;
 	printf("Destructeur utilisé !!\n" );
 	}
 
 void afficher()
 	{
 	for(int i=0;i<nbelmt;i++)
   printf("|%f",v[i]);
 	printf("|\n" );
 	}
 
 float& operator[](int &i)
 	{
 	if(i<0 || i>=nbelmt)
   {printf("Valeur hors borne\n" );
    exit(3);
   }
 	return v[i];
 	}
 
 void operator=(tableau &t)
 	{
 	if(t.nbelmt>nbelmt)
   {
   printf("Erreur tableau a copier trop grand !!\n" );
   exit(4);
   }
 	for(int i=0;i<t.nbelmt;i++)
   {v[i]=t.v[i];}
 	}
 
 
 
 void affect()
 	{
 	for(int i=0;i<nbelmt;i++)
   {
   printf("Valeur de la %n eme valeur ?\n",i);
   scanf("%f",&v[i]);
   }
 	}
 
 void reinit()
 	{
 	for(int i=0;i<nbelmt;i++)
   v[i]=0.0;
 	}
 
   
};
 
main()
{
int n;
int c;
printf("Création du tableau\n" );
printf("Combien de case souhaitez-vous ?\n" );
scanf("%d",&n);
tableau t(n);
do{
printf("Que souhaitez-vous faire ?\n" );
 
printf("1 - Initialiser de maniere manuelle le tableau\n" );  
printf("2 - Afficher le contenu du tableau\n" );
printf("3 - Remettre a zéro le tableau\n" );
 
int choix=0;
scanf("%d",&choix);
switch (choix)
{
 
case 1 :	t.affect();
 	break;
 
case 2 :	t.afficher();
 	break;
 
case 3 :  t.reinit();
 	break;
};  
printf("Souhaitez-vous faire d'autres opérations sur le tableau ? (1/2)\n" );
scanf("%d",&c);
}while(c==1);
}