Comparaison des pointeurs [Fermé]

- - Dernière réponse : kilian
Messages postés
8896
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.
Afficher la suite 

2 réponses

Messages postés
969
Date d'inscription
samedi 11 octobre 2008
Statut
Membre
Dernière intervention
29 juillet 2010
362
0
Merci
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
8896
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1369
-1
Merci
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;
}