[C] Déplacement dans un tableau dynamique ...
Fermé
oliver91
Messages postés
51
Date d'inscription
lundi 21 mai 2007
Statut
Membre
Dernière intervention
9 septembre 2009
-
22 mai 2007 à 07:47
Stupeflip Messages postés 391 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 4 décembre 2007 - 22 mai 2007 à 11:29
Stupeflip Messages postés 391 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 4 décembre 2007 - 22 mai 2007 à 11:29
A voir également:
- [C] Déplacement dans un tableau dynamique ...
- Tableau croisé dynamique - Guide
- Tableau ascii - Guide
- Comment faire un tableau - Guide
- Historique déplacement google - Guide
- Trier un tableau excel - Guide
7 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
22 mai 2007 à 08:31
22 mai 2007 à 08:31
Salut
Pourquoi tu as "2-ProdTab[i];" après le strstr ??
Pourquoi tu as "2-ProdTab[i];" après le strstr ??
oliver91
Messages postés
51
Date d'inscription
lundi 21 mai 2007
Statut
Membre
Dernière intervention
9 septembre 2009
3
22 mai 2007 à 08:38
22 mai 2007 à 08:38
En fait, sauf erreur de ma part (ce qui serait fort possible !), strstr retourne l'adresse de la 1ere occurence de la chaine "->" ... en faisant -Tab[i] je pense obtenir l'indice dans le tableau auquel se trouve le '-' donc en faisant +2, je pense me trouver sur le caractère qui suit la chaine "->" ... non ?
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
22 mai 2007 à 09:43
22 mai 2007 à 09:43
Beh oui ça marche. Enfin après tout dépend de ta déclaration dynamique de ton tableau. Et pourquoi tu as fait - ProdTab[i] et pas -Tab[i] ?
Peux-tu poster la déclaration de ton tableau, avec son initialisation des chaines de caractères ?
Peux-tu poster la déclaration de ton tableau, avec son initialisation des chaines de caractères ?
oliver91
Messages postés
51
Date d'inscription
lundi 21 mai 2007
Statut
Membre
Dernière intervention
9 septembre 2009
3
22 mai 2007 à 10:37
22 mai 2007 à 10:37
/*Récupération du tableau de productions*/ ProdTab=(char**)malloc(cmptn*sizeof(char*)); for(i=0;i<tailleficP;i++){ if(ProdTabInt[i]!='\n'){ cmptc++; }else{ ProdTab[j]=(char*)malloc((cmptc+1)*sizeof(char)); for(k=0;k<cmptc;k++){ ProdTab[j][k]=ProdTabInt[MemCmpt+k]; } ProdTab[j][k]='\0'; MemCmpt=MemCmpt+cmptc+1; cmptc=0; j++; } }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
oliver91
Messages postés
51
Date d'inscription
lundi 21 mai 2007
Statut
Membre
Dernière intervention
9 septembre 2009
3
22 mai 2007 à 10:38
22 mai 2007 à 10:38
/*Création dun tableau contenant la 2e partie des prod*/ T2=(char***)malloc(cmptn*sizeof(char**)); for(i=0;i<cmptn;i++){ for(j=strstr(ProdTab[i],"->")+2-ProdTab[i];j<strlen(ProdTab[i]);j++){ if(ProdTab[i][j]==' '){cmpte++; } } T2[i]=(char**)malloc((cmpte+1)*sizeof(char*)); for(j=strstr(ProdTab[i],"->")+2-ProdTab[i];j<strlen(ProdTab[i]);j++){ if(ProdTab[i][j]!=' '){ cmptm++; } T2[i][j]=(char*)malloc((cmptm+1)*sizeof(char)); T2[i][j][k]=ProdTab[i][j]; T2[i][j][cmptm]='\0'; } }
Stupeflip
Messages postés
391
Date d'inscription
jeudi 8 février 2007
Statut
Membre
Dernière intervention
4 décembre 2007
94
22 mai 2007 à 11:14
22 mai 2007 à 11:14
Salut,
Ton erreur se situe au niveau de la variable de retour de strstr, en fait ca te renvoie un pointeur, et non la case [j] dans le tableau.
Par exemple si tu fais un char * j, tu pourras afficher ta chaine recherchée en faisant
printf("%s",j);
Ton erreur se situe au niveau de la variable de retour de strstr, en fait ca te renvoie un pointeur, et non la case [j] dans le tableau.
Par exemple si tu fais un char * j, tu pourras afficher ta chaine recherchée en faisant
printf("%s",j);
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
22 mai 2007 à 11:23
22 mai 2007 à 11:23
Oui, mais il a fait - Tab[i]. Cette différence permet de récupérer l'indice voulu.
Stupeflip
Messages postés
391
Date d'inscription
jeudi 8 février 2007
Statut
Membre
Dernière intervention
4 décembre 2007
94
22 mai 2007 à 11:29
22 mai 2007 à 11:29
Ah en effet autant pour moi :)
Je viens de tester ça marche bien.. C'est quoi l'erreur chez toi ?
Je viens de tester ça marche bien.. C'est quoi l'erreur chez toi ?