Comparaison des pointeurs

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

  • Votes
  • Date
  • Date décroissante
  1. 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));
    ......
    @+
    1. Modérateur
      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;
      }