Génération d'une chaîne de caractères aléatoires
Bonjour. Je m'intéresse depuis quelques temps à générer des chaînes de caractère aléatoires. Pour la petite histoire, c'est parce que c'est énervant de se creuser la tête soi-même pour trouver un MdP aléatoire lorsqu'on s'inscrit sur un forum :D J'imagine que tout le monde connait ça. En ce moment, j'essaie de faire de la génération aléatoire de caractère et d'affecter chacun des caractères à une case d'un tableau déclaré dynamiquement. Pour entrer dans le vif du sujet, c'est une :aie: segmentation fault sur laquelle je me casse les dents qui m'ammène à venir ici. Je vous poste mon code. Je précise que j'ai lu ce que j'ai trouvé sur le site à propos d'allocation dynamique de mémoire, et que je n'ai pas trouvé mon erreur (erreur de segmentation qui m'arrive tout le temps quand je fais de l'allocation dynamique, alors c'est qu'il y a quelque chose que je n'ai pas compris)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
short nbr_lettres,i; //declarations des variables et pointeurs
char *la_cle=NULL; //
FILE *cle_file=NULL; //Pointeur sur flux de données sur fichier
cle_file=fopen("~/cle_cree","w"); //ouverture en écriture du fichier ~/cle_cree
printf("entrez le nombre de lettres de votre clé\t"); //initialisation du nombre de
scanf("%d",&nbr_lettres); //caractères de la chaîne
la_cle=malloc(nbr_lettres*sizeof(char)); //allocation dynamique de mémoire
for(i=0;i<nbr_lettres;i++) //
{ //Remplissage du tableau
*(la_cle+i)=((rand()%26)+65); //avec des lettres majuscules
} //
fprintf(cle_file,"La clé est : /t%s",la_cle);//ecriture dans le fichier
fclose(cle_file);
cle_file=NULL;
free(la_cle);
la_cle=NULL;
printf("/nMerci. Votre clé est dans le fichier cle_cree à la racine de votre répertoire personnel\n");
return 0;
} |