La taille réservée par le malloc() (dans le cas présent) n'est pas correcte: il manque la place pour le \0, nécessaire lors du printf() pour repérer la fin de la chaine. Et, fatalement, la fonction initialiseChaine() n'est pas correcte.
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
en fait toutes les fautes que tu as citées viennent du fait que je n'ai pas copié-coller le code, je l'ai retapé parce que le jeu du pendu que je fais est en fait en anglais, j'ai aussi changé la boucle for par une boucle while, et je ne suis pas assez avancé dans le langage C pour connaître la fonction memset
et ça m'affiche maintenant *3x
voici le vrai code de mon programme :
void intializeStr(char string_name[], int string_length)
{
int i:
while(string_name[i] < string_length && string_name [i] != '\0')
{
string_name[i] = '*';
i ++;
}
}
int main(void)
{
int length = 0;
int size_alloc = 0;
char secretWord[] = "ELEMENTAL";
char *hiddenWord;
printf("Welcome to the hung man game.\n\n");
length = strlen(secretWord);
size_alloc = length * sizeof(char);
hiddenWord = malloc(size_alloc);
if(hiddenWord == NULL)
{
printf("ERROR ALLOCATION");
exit(0);
}
initiaizeStr(hiddenWord, size_alloc + 1);
printf("%s", hiddenWord);
free(hiddenWord);
return 0;
}
En plus de ce qu’a dit @edgarjacobs, rien ne t’empêche de regarder sur Internet ce que fait la fonction memset et comment l’utiliser. Sinon, size_alloc et length devraient être de signe size_t.
@yo@n97one comment je suis censé déclarer une variable de type size_t
size_t size_allooc = 0;
comme ça par exemple?
Oui, par exemple.
NekoHana a écrit:
@thetui est-ce que tu parles du fait que j'ai écrit
string_name[i] < string_length
Dans cette fonction, tu initialises string_name. Tu ne sais donc pas ce que contient string_name[i]. Tu compares donc de l'inconnu avec string_length -- test qui, même si le contenu de string_name était connu, est aberrant dans ce contexte. Ceci est également valable (évidemment) pour la comparaison avec !='\0'. La piste i<string_length est bonne, tente-la.
EDIT (éditeur de m....): as-tu corrigé le malloc() ? Tant que cela n'est pas réglé, tu auras des ennuis....
- Edité par edgarjacobs 19 juin 2017 à 20:42:05
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
Merci beaucoup les gars, mon code marche enfin grâce à vous.
Problème avec le jeu du pendu
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent