Resultat d'une fct est un paramétre d'entée de la mm fct
Résolu
neocol
Messages postés
63
Date d'inscription
Statut
Membre
Dernière intervention
-
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
A voir également:
- Resultat d'une fct est un paramétre d'entée de la mm fct
- Remettre parametre usine pc - Guide
- Resultat foot - Télécharger - Vie quotidienne
- Parametre dns - Guide
- Parametre windows - Guide
- Netflix paramètre compte - Guide
3 réponses
J'ai pensé à changer la fct à int Copier(char* bloc, int pas1, int pas2, char* chaine), mais je reçois toujours une segmentation fault.
Bonjour,
Oui c'est tout à fait possible.
Le segfault est probablement obtenu parce que tu n'as pas alloué ta chaîne (malloc par exemple).
Ce qui donnerait :
Oui c'est tout à fait possible.
Le segfault est probablement obtenu parce que tu n'as pas alloué ta chaîne (malloc par exemple).
Ce qui donnerait :
int main(void) { /*définition de bloc, pas1 et pas2*/ resultat=malloc(strlen(bloc)+1); COPIER(bloc, pas1,pas2, resultat); printf("après : %s\n", resultat); return 0; }
Bonjour,
J'ai résolu mon pb, voici un exemple démonstratif :
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void intChange(int* a)
{
*a = 14;
}
void strChange(char** str)
{
free(*str);
*str = malloc(6 * sizeof (char));
strcpy(*str, "hello");
}
int main()
{
int nb = 5;
char* str = NULL;
printf("Avant: %i\n", nb);
intChange(&nb);
printf("Après: %i\n", nb);
str = malloc(7 * sizeof (char));
strcpy(str, "coucou");
printf("Avant: %s\n", str);
strChange(&str);
printf("Après: %s\n", str);
free(str);
return 0;
}
Effectivement, le pb était l'allocation de la mémoire pour la chaine de retour.
Merci pour votre aide.
J'ai résolu mon pb, voici un exemple démonstratif :
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void intChange(int* a)
{
*a = 14;
}
void strChange(char** str)
{
free(*str);
*str = malloc(6 * sizeof (char));
strcpy(*str, "hello");
}
int main()
{
int nb = 5;
char* str = NULL;
printf("Avant: %i\n", nb);
intChange(&nb);
printf("Après: %i\n", nb);
str = malloc(7 * sizeof (char));
strcpy(str, "coucou");
printf("Avant: %s\n", str);
strChange(&str);
printf("Après: %s\n", str);
free(str);
return 0;
}
Effectivement, le pb était l'allocation de la mémoire pour la chaine de retour.
Merci pour votre aide.