Comparaison des pointeurs [Fermé]

Signaler
-
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
-
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

Messages postés
965
Date d'inscription
samedi 11 octobre 2008
Statut
Membre
Dernière intervention
29 juillet 2010
369
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));
......
@+
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 491
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;
}