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 forumJ'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
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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; }
Partager