Comparaison des pointeurs

MINA -  
kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
se programme l'orsque je cmpile il commence à s'executer mais l'orsque j'entre les pointeur il bloc
voici le code
#include<stdio.h>
#include<string.h>
int main()
{
int *p1,*p2;
char **c1,**c2;
/*Saisie des pointeurs*/
printf("donner les pointeurs sur les entiers\n");
scanf("%d ,%d",p1,p2);
printf("donner deux pointeurs sur deux chaines de caractéres");
scanf("%s %s",c1,c2);
if(*p1==*p2)
printf("ils sont égaux");
else
printf("ils sont differents");
if(strcmp(*c1,*c2)==0)
printf("les chaines sont égaux");
else
printf("les chaines sont differentes");
return 0;
}
Merci.

2 réponses

  1. chuka Messages postés 980 Statut Membre 379
     
    Salut,
    si tu n'alloues pas d'espace mémoire, tu auras toujours un seg fault...
    int *p1=(int*)malloc(sizeof(int));
    int *p2=(int*)malloc(sizeof(int));
    ......
    @+
    0
  2. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
     
    En encore, tu peux utiliser l'adresse de variables locales:

    #include<stdio.h>
    #include<string.h>
    
    int main()
    {
        int i1,i2;
        char c1[30], c2[30];
    
        /*Saisie des pointeurs*/
        printf("donner les pointeurs sur les entiers\n");
        scanf("%d ,%d",&p1,&p2);
        printf("donner deux pointeurs sur deux chaines de caractéres");
        scanf("%s %s",&c1, &c2);
        if(i1==i2)
            printf("ils sont égaux");
        else
            printf("ils sont differents");
        if(!strcmp(&c1, &c2))
            printf("les chaines sont égales");
        else
            printf("les chaines sont differentes");
        return 0;
    }
    -1