Forum Clubic

Erreur C++ Tableau de taille zéro

Bon voila un petit problème, j’ai l’erreur C2466 qui me dit que je ne peut pas allouer un tableau de taille zéro a cette fonction


void AfficherClient(Client_s Client[NoClient-1])
	{
	cout<<"\t\tNumero Client: #"<<NoClient;

	cout<<"\n\tNom : ";
	cout<<Client[NoClient-1].Personnel.Nom.Nom;

	cout<<"\n\tPrenom : ";
	cout<<Client[NoClient-1].Personnel.Nom.Prenom;

Mon NoClient est le numéro du client que j’ajoute lorsque le programme roule et je fais moins un pour afficher la bonne position dans le tableau logiquement…

Et mon NoClient est dans la fonction qui suit :


int LireNoClient()
	{
	clrscr();

	cout<<"\n\n\t\tEntrez le numero du client : ";
	cin>>NoClient;

	return NoClient;
	}

correct non? Alors je vois pas le problèmes la…

J’ai bien déclaré le tableau de Client qui est une structure imbirquée…

Des idées? Merci :jap:

support.microsoft.com…

En gros, si tu fais :

X* t = new X[foobar];

et que foobar == 0, faut pas chercher.

Si c’est le compilateur qui te sort ça, il est sympa.
SI c’est à l’exécution, t’es bon pour un coup de debugger?

C’est quand ca compile que ca me fait ca mais justement, comment je voudrais que ca marche, j’ai ma fct ajouter un nouveau client, je l’ajoute et la il m’affiche les infos dessus, seulement ca plante au compilage, j’ai essayé en initialisant NoClient a ou a 2 mais rien n’y change…Logiquement je doit entrer des infos dans mes structures pour les affichers mais il ne veut pas me le laisser les ajouter…

Euh, à moins que j’ai perdu mon c++, tu ne déclares pas de fonction comme ça : void AfficherClient(Client_s Client[NoClient-1])
Mais plutot comme ça : void AfficherClient(Client_s Client[])
Edité le 13/03/2008 à 10:27

Pas mal ça.

Ou plutôt: Client_s* Client.

utilises plutôt des allocations dynamique (malloc par exemple) pour la définition de tes tableaux !

Plutôt new[] car il est en C++

non en effet j’ai déja déclaré mon prototype de fonction plus haut :jap:

ok, qu’il s’agisse de déclaration ou de définition, le problème est le même

Il n’est pas vide forcément puisque mon tableau client je l’ait déclaré comme suis :

Client_s Client[MAX]

Et max est déclaré comme suis :

const int MAX = 70; :neutre:

Bon j’ai réglé mon problème :paf:

Merci quand même :jap: