Fausse manipulation des pointeur

Fermé
AzizGadacha - Modifié le 14 mai 2020 à 21:13
 AzizGadacha - 15 mai 2020 à 13:02
Bonjour,
j'ai un problème avec les pointeurs j'ai utiliser une fonction dans une autre fonction maisj'ai eu des probleme avec la declaration des variable exactement dans la ligne 65

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct
{    char nom1[20];
    char pays1[20];
    int poin1;
}ecurie;
typedef struct
{   char nom[20];
    char prenom[20];
    char pays[20];
    ecurie vol;
    int point;
}pilote;
typedef struct
{   char nomc[20];
    int nombre;
    char date[20];
    int classement[20];
}grand_prix;

int recherche(int *np,ecurie *m,int *tnb,ecurie *te)
{int i=0;
    while(strcmp(te [i].nom1,m->nom1)!=0)
        i=i+1;
        if (i>*np)
            return(-1);
        else
        {if (tnb[i]<2)
            return(i);
            else
            return(0);}}
int recherche1(ecurie *te,ecurie *m,int *nbr)
{int i=0;
    while(strcmp(te [i].nom1,m->nom1)!=0)
        i=i+1;
        if (i>*nbr)
            return(-1);
        else
            return(i);}
void ajoutepilo(int *j,pilote *w,ecurie *m, pilote *tp,int *np,int *tnb,int *nbr,ecurie *te)
{
    int x;
    printf("donner le nom du %d pilote  ",j);
scanf("%s",&w->nom);
printf("donner le prenom du %d pilote",j);
scanf("%s",&w->prenom);
printf("donnerle pays du %d pilote  ",j);
scanf("%s",&w->pays);
printf("donnerle pays1 du %d pilote  ",j);
scanf("%s",&w->vol.nom1);
printf("donnerle pays2 du %d pilote  ",j);
scanf("%s",&w->vol.pays1);
printf("%s",w->vol.nom1);
printf("%s",w->vol.pays1);
printf("%s",w->nom);
printf("%s",w->prenom);
printf("%s",w->pays);
   strcpy(w->vol.nom1,m->nom1);
strcpy(w->vol.pays1,m->pays1);
w->vol.poin1=m->poin1;
w->point=0;
*np=*np+1;
tp[*np]=*w;
tnb[recherche(&np,&m,tnb,te)]=tnb[recherche(&np,&m,tnb,te)]+1;

}

int main ()
{grand_prix to[20];
ecurie te[10],m;
pilote tp[20],w;
int tnb[10],nbr;
int  ne,np,i,n,j;
for(i=0;i<n;i++)
       tnb[i]=0;
printf("donner le nombre d'ecurie a ajoutter" );
scanf("%d",&n);
ajoutepilo(&j,&w,&m,tp,&np,tnb,&nbr,te);
recherche(&np,&m,tnb,te);
}


Configuration: Windows / Chrome 81.0.4044.138

3 réponses

yg_be Messages postés 23400 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 décembre 2024 Ambassadeur 1 557
15 mai 2020 à 09:57
bonjour, je ne vois aucune déclaration en ligne 65.
de quel problème s'agit-il?
0
AzizGadacha
15 mai 2020 à 13:01
non il n'ya pas d'erreur pour la ligne 65 l'erreur excite dans la ligne 6 j'ai un variable qui est déjà un pointeur dans je ne sais pas comment je doit l’appelé dans cette fonction si vous pouvez me corriger cette ligne
0
yg_be Messages postés 23400 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 décembre 2024 Ambassadeur 1 557
15 mai 2020 à 10:00
0
Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 101
15 mai 2020 à 10:06
Bonjour,

Il y a eu une promo sur les pointeurs? Je n'avais jamais vu autant de pointeurs de ma vie! Il ne faut utiliser les pointeurs que quand on n'a pas d'autres possibilités.
Je vois plutôt le problème ligne 66. Ici
np
est un pointeur sur un
int
, donc
&np
est un pointeur sur un pointeur sur un
int
, la fonction quant à elle s'attend à un simple pointeur sur un
int
! Et en plus elle n'a besoin que de la valeur d'un
int
pourquoi compliquer avec un pointeur ici.
0
AzizGadacha
15 mai 2020 à 13:02
oui j'ai fait une faute je veux dire que j'ai un problème avec la ligne 66 car j'ai réglé quelle que chose avant de publier le code donc j'ai oublier de vérifier le numero de la ligne dans la quelle l'erreur excite
mon problème est ça fausse manipulation avec les pointeur car j'ai un variable qui est déjà un pointeur dans je ne sais pas comment je doit l’appelé dans cette fonction si vous pouvez me corriger cette ligne
0