Erreur de segmentation(sic)
Résolu
scheme
Messages postés
52
Statut
Membre
-
scheme Messages postés 52 Statut Membre -
scheme Messages postés 52 Statut Membre -
Bonjour, le programme suivant compile bien mais donne une erreur d'exécution quand je veut le lancer.
#include <stdio.h>
#include <stdlib.h>
char* func_pointeur()
{
char *pointeur= "okay";
return pointeur;
}
int main()
{
char *pointeur=NULL;
func_pointeur();
printf("%s\n", pointeur);
return 0;
}
Je sais que ça signifie que j'essaie d'accéder à une case mémoire qui ne m'est pas réservée, d'où l'arrêt du programme et l'apparition du message d'erreur. Je pense que vous avez compris ce que je veux faire dans ce programme, pourriez-vous m'indiquer quelle est mon erreur et comment la corriger? Merci d'avance :)
#include <stdio.h>
#include <stdlib.h>
char* func_pointeur()
{
char *pointeur= "okay";
return pointeur;
}
int main()
{
char *pointeur=NULL;
func_pointeur();
printf("%s\n", pointeur);
return 0;
}
Je sais que ça signifie que j'essaie d'accéder à une case mémoire qui ne m'est pas réservée, d'où l'arrêt du programme et l'apparition du message d'erreur. Je pense que vous avez compris ce que je veux faire dans ce programme, pourriez-vous m'indiquer quelle est mon erreur et comment la corriger? Merci d'avance :)
A voir également:
- Erreur de segmentation(sic)
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur de lecture reconnecté en 3s - Forum TV & Vidéo
- Erreur 4101 france tv - Forum Lecteurs et supports vidéo
- Erreur 4201 france tv ✓ - Forum Réseaux sociaux
10 réponses
Ben sur mon poste j'ai pas d'erreur.....avec n'importe quelle lettre....
#include <stdio.h>
#include <stdlib.h>
char* chercherCaractere(char* chaine, char caractereArechercher)
{
while((caractereArechercher != *chaine) && (*chaine != '\0'))
{
chaine++;
}
if(*chaine==caractereArechercher) return chaine;
else return NULL;
}
int main()
{
char* pointeur;
char* chaine="Owie jai réussi";
if ((pointeur=chercherCaractere(chaine, 'z'))==NULL) printf ("pas d'occurence");
else printf("%s\n", pointeur);
return 0;
}
Salut,
Je pense qu'en faisant cela ca devrait suffir!!!
int main()
{
char *pointeur=NULL;
pointeur=func_pointeur();
printf("%s\n", pointeur);
return 0;
}
@+
Je pense qu'en faisant cela ca devrait suffir!!!
int main()
{
char *pointeur=NULL;
pointeur=func_pointeur();
printf("%s\n", pointeur);
return 0;
}
@+
Dans mon code principal ça ne fonctionne toujours pas, je ne comprend pas pourquoi =(
#include <stdio.h>
#include <stdlib.h>
char* chercherCaractere(const char* chaine, int caractereArechercher)
{
long i= 0;
char* pointeur= NULL;
while(caractereArechercher != chaine[i] && chaine[i] != '\0')
{
i++;
}
if(chaine[i]==caractereArechercher)
{
pointeur=&chaine[i];
}
return pointeur;
}
int main()
{
char* pointeur=NULL;
char chaine[]="Owie j'ai réussi =)";
pointeur=chercherCaractere(chaine, 'z');
printf("%s\n", pointeur);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
char* chercherCaractere(const char* chaine, int caractereArechercher)
{
long i= 0;
char* pointeur= NULL;
while(caractereArechercher != chaine[i] && chaine[i] != '\0')
{
i++;
}
if(chaine[i]==caractereArechercher)
{
pointeur=&chaine[i];
}
return pointeur;
}
int main()
{
char* pointeur=NULL;
char chaine[]="Owie j'ai réussi =)";
pointeur=chercherCaractere(chaine, 'z');
printf("%s\n", pointeur);
return 0;
}
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Salut,
Je sais pas trop ce que tu veux retourner...là ca te retourne la fin de la chaine trouvée....
#include <stdio.h>
#include <stdlib.h>
char* chercherCaractere(char* chaine, char caractereArechercher)
{
while((caractereArechercher != *chaine) && (*chaine != '\0'))
{
chaine++;
}
if(*chaine==caractereArechercher) return chaine;
}
int main()
{
char* pointeur;
char* chaine="Owie jai réussi";
pointeur=chercherCaractere(chaine, 'u');
printf("%s\n", pointeur);
return 0;
}
Je sais pas trop ce que tu veux retourner...là ca te retourne la fin de la chaine trouvée....
#include <stdio.h>
#include <stdlib.h>
char* chercherCaractere(char* chaine, char caractereArechercher)
{
while((caractereArechercher != *chaine) && (*chaine != '\0'))
{
chaine++;
}
if(*chaine==caractereArechercher) return chaine;
}
int main()
{
char* pointeur;
char* chaine="Owie jai réussi";
pointeur=chercherCaractere(chaine, 'u');
printf("%s\n", pointeur);
return 0;
}
Salut,
Rajoute dans le if:
if(*chaine==caractereArechercher) return chaine; else return NULL;
je pense ca devrait resoudre le prb...
Rajoute dans le if:
if(*chaine==caractereArechercher) return chaine; else return NULL;
je pense ca devrait resoudre le prb...
L'erreur de segmentation est toujours présente :X
Je reposte le code:
#include <stdio.h>
#include <stdlib.h>
char* chercherCaractere(char* chaine, char caractereArechercher)
{
while((caractereArechercher != *chaine) && (*chaine != '\0'))
{
chaine++;
}
if(*chaine==caractereArechercher)
{
return chaine;
}
else
{
return NULL;
}
}
int main()
{
char* pointeur;
char* chaine="Owie jai réussi";
pointeur=chercherCaractere(chaine, 'z');
printf("%s\n", pointeur);
return 0;
}
Merci de m'aider =)
Je reposte le code:
#include <stdio.h>
#include <stdlib.h>
char* chercherCaractere(char* chaine, char caractereArechercher)
{
while((caractereArechercher != *chaine) && (*chaine != '\0'))
{
chaine++;
}
if(*chaine==caractereArechercher)
{
return chaine;
}
else
{
return NULL;
}
}
int main()
{
char* pointeur;
char* chaine="Owie jai réussi";
pointeur=chercherCaractere(chaine, 'z');
printf("%s\n", pointeur);
return 0;
}
Merci de m'aider =)