Accueil > Forum > > > > Suppression d'occurences dans un tableau
Suppression d'occurences dans un tableau
mercredi 26 octobre 2011 à 10:07:06 |
Suppression d'occurences dans un tableau

ronnie10
|
Bonjour,
Y a t-il quelqu'un qui pourrait m'aider avec mon algorithme s'il vous plait? En effet, je souhaite effacer des occurences dans un tableau. A la compilation, pas d'erreurs mais à l'éxécution, erreur de segmentation.
Voici mon code :
void supprimeDoublonsTab(int* tab, int tailleTab){
int i, j;
for (i=0;i<tailleTab;i++){
for (j=tailleTab-1;j<tailleTab;j--){
if (tab[i] == tab[j]){
free(tab[j]);
tailleTab--;
realloc(tab, tailleTab);
}
}
}
}
Merci d'avance pour l'aide que vous pourries m'apporter :)
|
|
mercredi 26 octobre 2011 à 10:20:10 |
Re : Suppression d'occurences dans un tableau

LA_Tupac
|
Salut.
S'il vous plait faites des efforts pour utiliser les balises code et décaler vos blocks {} pour que ce soit lisible.
Je ne me fatiguerai pas a lire ce code même s'il est court  .
|
|
mercredi 26 octobre 2011 à 10:43:30 |
Re : Suppression d'occurences dans un tableau

buno
|
Hello,
Code C/C++ : for (j=tailleTab-1;j<tailleTab;j--){
Elle est là ton erreur: tu décrémentes j "tant qu'il est inférieur à tailleTab". Du coup, il va passer à -1...et crac!
Je plussoie LA_Tupac: les balises "code" sont là pour, justement, rendre le code plus lisible
@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
|
|
mercredi 26 octobre 2011 à 11:04:59 |
Re : Suppression d'occurences dans un tableau

ronnie10
|
désolé les gars, je suis nouveau sur le forum et je ne savais pas comment faire, milles excuses :S
voici donc mon code :
Code C# : int* supprimeDoublonsTab(int* tab, int tailleTab){
int i, j;
for (i=0;i<tailleTab;i++){
for (j=tailleTab-1;j>tailleTab;j--){
if (tab[i] == tab[j]){
free(tab[j]);
tailleTab--;
realloc(tab, tailleTab);
}
}
}
return tab;
}
et du coup j'ai testé dans un main avec un tableau, et la réponse n'est pas ce que j'attendais.. :'(
mon code dans le main pour la déclaration de mon tableau et l'affichage de celui ci:
Code C# : int* tab = (int*)malloc(sizeof(int)*6);
tab[0]=1;
tab[1]=1;
tab[2]=2;
tab[3]=3;
tab[4]=4;
tab[5]=2;
supprimeDoublonsTab(tab,6);
int i;
for (i = 0; i<=sizeof(tab);i++){
printf("%d\n", tab[i]);
}
help please :'(
|
|
mercredi 26 octobre 2011 à 11:05:49 |
Re : Suppression d'occurences dans un tableau

ronnie10
|
et la réponse que j'obtiens sur la console :
1
1
2
3
4
|
|
mercredi 26 octobre 2011 à 11:52:15 |
Re : Suppression d'occurences dans un tableau

buno
|
Code C/C++ :
Tu penses faire quoi ici?
Littéralement, tu essaie de désallouer...un entier. Or, free demande un pointeur comme paramètre, donc plutôt tab+j
@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
|
|
mercredi 26 octobre 2011 à 12:05:32 |
Re : Suppression d'occurences dans un tableau

buno
|
Et puis non, oublies. On ne désalloues pas "une case" comme cela.
Tu peux, par contre, décaler toutes les valeurs d'après.
@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
|
|
mercredi 26 octobre 2011 à 12:17:04 |
Re : Suppression d'occurences dans un tableau

ronnie10
|
mais avec le free, ça peut aussi marcher non? puisqu'il supprime bien mon dernier élément de mon tableau?
j'ai essayé de faire avec un décalage mais rien à faire les deux premiers 1 restent toujours :'(
voici mon code :
Code C# : int* supprimeDoublonsTab(int* tab, int tailleTab){
int i, j;
for (i=0;i<tailleTab;i++){
for (j=tailleTab-1;j>tailleTab;j--){
if (tab[i] == tab[j]){
tab[j]=tab[j+1];
tailleTab--;
}
}
}
return tab;
}
:'( :'(
|
|
mercredi 26 octobre 2011 à 12:18:39 |
Re : Suppression d'occurences dans un tableau

ronnie10
|
et le résultat dans la console reste inchangé :
1
1
2
3
4
Remarque qu'il avait bien effacé mon deuxième 2 qui se trouvait en fin de liste, que ce soit avec un free ou avec un décalage :)
|
|
mercredi 26 octobre 2011 à 13:44:47 |
Re : Suppression d'occurences dans un tableau

buno
|
Essaie de t'inspirer de ça
Et pour le décalage, regarde la méthode memmove()
@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
|
|
Cette discussion est classée dans : int, tableau, occurences, tab, tailletab
Répondre à ce message
Sujets en rapport avec ce message
tableau char [ par dingue007 ]
Voila je dois faire un prog en C++ : un tableau avec les mois de lannée et quand je tape un chiffre il me sort le mois ! mais je narrive pas a faire l
Blem Somme ELmt d'un Tableau Bidimensionnel [ par Orezza ]
Slt c encore moi, le boulet de l'info...c tjrs le meme prog mais cette fois ci j'aimerais afficher la somme des elmts de mon tableaux.#include #includ
Problem Affichage de mon Tableau [ par Orezza ]
salut à tous, j'ai un blem à l'affichage du tableau. l'utilisateur parametre son tableau, c lui qui l'initilize mais j'arrive pas à afficher apres le
Tableau à 3 dimensions [ par VinceExtense ]
Savez vous comment faire passer en paramètre un tableau à 3 dimensions ?void fonction1(int x,iny y,int z){int tab[x][y][z];}void fonction2(int ***tab,
Allocation dynamique dans une fonction [ par Veovis ]
Salut,Toujours dans mon projet de TP, j'ai un petit soucis avec l'allocation dynamique dans une fonction. Ce que je voudrais faire c'est quand le tabl
tri tableau en ligne [ par TWITTI ]
bonjour , je suis etudiant en mécanique et la programmtion c est embetant pour moi.J ai un probleme sur mon programme main().Je n arrive pas a faire
Tableau en C [ par Mickylord ]
Bonsoir a tous !Voici ma question :J'ai une fonction principale, main(), et une autre fonction tab(). Je voudrais déclarer un tableau dans la fonction
exclusion d'un Intervalle dans un tableau ... [ par pirana ]
Bonjour à tous , j'aimerais sauté un intervale dans un textevoici mon code je pense que ca sera plus explicite :)data[]={01234567ABCDEFLI01234567ABCDE
plantage en utilisant le constructeur "new" [ par Ganaga ]
Bonjour,J'utilise le constructeur new pour affecter un tableau d'entiers dans une boucle qui s'exécute plus de 10000x. Au bout d'un certain temps (lon
tableau [ par imanedaoudi ]
Salut,Je veux récuperer le tableaux triée sans faire return, avec ce programme je recupere le tableau non trier ,comment faire pour recuperer le tab t
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
MATLAB PROGRAMME MATLAB PROGRAMME par wahab1087
Cliquez pour lire la suite par wahab1087 RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|