Comparaison des pointeurs

Fermé
MINA - 22 juin 2010 à 22:35
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 - 23 juin 2010 à 06:25
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.
A voir également:

2 réponses

chuka Messages postés 965 Date d'inscription samedi 11 octobre 2008 Statut Membre Dernière intervention 29 juillet 2010 378
22 juin 2010 à 23:00
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
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
23 juin 2010 à 06:25
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