我用 C 语言编写了一个随 secret 码生成器。但是我的代码抛出了一个错误。问题是什么?我该如何修复它?
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
srand((unsigned int)(time(NULL)));
int k_sayi,i;
srand((unsigned int)(time(NULL)));
char kucuk_harf[26]="abcdefghijklmnoprstuvwxyz";
char buyuk_harf[26]="ABCDEFGHIJKLMNOPRSTUVWXYZ";
char sayilar[11]="1234567890";
char ozel_karakter[13]="!'^+%&/=?_*";
char *pass;
printf("Parola kac karakterli olsun?: ");
scanf("%d",&k_sayi);
pass=(char *)malloc(k_sayi*sizeof(char));
for(i=0;i<k_sayi;i++){
pass[i]=rand()%(sizeof kucuk_harf);
}
pass[i]='\0';
printf("%s",pass);
return 0;
}
最佳答案
如果你改变
for(i=0;i<k_sayi;i++){
pass[i]=rand()%(sizeof kucuk_harf);
}
至
for(i=0;i<k_sayi-1;i++){
pass[i]=rand()%(sizeof kucuk_harf);
}
它应该可以工作。
如果您有一个大小为 n
的数组,则可以从 0
到 n-1
迭代它。
您已经在 for 循环中执行了此操作,但随后想要访问超出范围的 pass[i]
。
关于c - 我的随 secret 码生成器抛出错误。我该如何解决?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57243658/