Я работаю с простой программой шифрования, которая берет пароль и разбивает его для выполнения некоторых математических операций.
Я замечаю, что когда я повторяю разделенный пароль, появляется дополнительный «???»добавляются в конец.
Я проверил sizeof () разделенных строк, и для этого не осталось дополнительного места, которое я могу видеть.Размер переменных разделенных паролей символов не должен допускать этого.
Что вызывает это?
это вызов функции внутри функции main ()
Допустим, я ввожу «читать»
char pass[25];
printf("Enter Pass. Max 25 characters \n");
scanf("%s", pass);
encrypt(pass);
код
void encrypt(char *pass) {
int length = strlen(pass);
int half = length/2;
char half1[half];
char half2[half];
for (int i = 0; i < half; ++i) {
half1[i] = pass[i];
half2[i] = pass[(half + i)];
}
printf("\n%s\n", half1);
printf("%s\n", half2);
printf("%d\n", length);
printf("%d\n", half);
printf("%d\n", sizeof(half1));
}
Выход
re???
ad???
4
2
2