c - 我的随 secret 码生成器抛出错误。我该如何解决?

标签 c password-generator

我用 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 的数组,则可以从 0n-1 迭代它。
您已经在 for 循环中执行了此操作,但随后想要访问超出范围的 pass[i]

关于c - 我的随 secret 码生成器抛出错误。我该如何解决?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57243658/

相关文章:

python - 使用python生成8个字符的密码,包括小写、大写和数字

java - 需要一个安全的密码生成器推荐

java - 当从扫描仪获取密码长度时,密码生成器抛出 IndexOutOfBoundsException

无法使用 execv() 执行程序

javascript - JavaScript 中的人类口语密码生成器

java - 如何按给定顺序返回数组元素?

C sscanf 和字符串格式

c - C标准中生命周期规则的解释

c - 为什么我的递归函数的返回值出错

c - 如何在 libcurl 中自定义 WRITEFUNCTION 以接收大数据流(高达 10K)?