bonjour, j'ai cette petite fonction qui doit allouer juste assez de place en mémoire pour un chaîne saisie au clavier. Le probleme est que mon compilateur m'explique qu'il y à trop peu de paramètre pour calloc. j' ai donc tenté avec malloc, et ca marche. Je voulais donc savoir si il faut, dans le cas d'une chaîne, initialiser la place reservée à zéro ou si l'adresse du premier octet était suffissante.Je vous pose cette question car j'ai trouvé la fonction dans mon livre de C et je veux comprendre ou se trouve l'erreur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 char* SaisieChaine(void){ char chaine[1000]; char *econome; puts("Saisir une ligne"); fgets(chaine, 1000, stdin); econome = (char *)calloc((strlen(chaine)+1)*sizeof(char)); strcpy(econome, chaine); return econome; }
Merci.
je l'ai transformée comme cela
Ceci est-il juste?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 char* SaisieChaine(void){ char chaine[1000]; char *econome; puts("Saisir une ligne"); fgets(chaine, 1000, stdin); econome = (char *)calloc((strlen(chaine)+1),sizeof(char)); strcpy(econome, chaine); return econome; }
Partager