Probleme en C# sur les tableaux

Fermé
mickou64 - 28 nov. 2008 à 17:03
Droopy_ Messages postés 248 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 17 janvier 2009 - 28 nov. 2008 à 23:35
Bonjour,


Voila j'ai un probleme je n'arrive pas à supprimer un élément dans mon tableau. Le code est le suivant :

Console.WriteLine("Saisissez un nom de contact");
rech2 = Console.ReadLine();

for (i = 0; i < element; i++)
{
if (rech2 == tabRep[i].nom)
{
trouve2 = true;
indice2 = i;
}

}

for (i = indice2; i < element; i++)
{
tabRep[i] = tabRep[i + 1];
}


Donc la je remplace chaque élément par son successeur mais je ne sais pas comment supprimer le dernier.

De plus, par logique dans l'avant dernier élément de mon tableau ainsi que dans le dernier il devrait y avoir le meme contact ... Mais dans le dernier il n'y a plus rien (numéro de tel vide, nom vide, prenom vide etc.)

Merci d'avance.

Bonne journée à toutes et à tous

1 réponse

Droopy_ Messages postés 248 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 17 janvier 2009 25
28 nov. 2008 à 23:35
Bonsoir,

Ton tableau à "element" elements. donc il va de 0 à element-1.

Dans ta boucle pour bouger les elements, tu va jusqu'à i<element, donc element-1,
mais tu fais : tabRep[i] = tabRep[i + 1];
ce qui donne tabRep[ element-1 ] = tabRep[ element ];

Donc tu va un coup trop loin... Du déborde de ton tableau (plantage assuré à terme).

En fait, pour "effacer" le dernier élement il te suffit de mettre element=element-1
tu ne l'efface pas, tu réduit le tableau.
0