я получил задание генерировать случайные 80 ключи байт и я решил следующий strategesГенерация случайных ключей
в моем компьютере sizeof(char)=1
так я создал массив английских букв алфавита
char *p=" ";
char a[0..26] and in cycle
for (int i=0;i<=80;i++){
*(p+i)+= a[(rand()+100) % 26];
}
но это не работать он прекращает выполнение, пожалуйста, помогите извините, если мой код глупо, но я не могу думать в это время иначе благодаря код
#include <iostream>
#include <string.h>
#include <cstdlib>
using namespace std;
int main(){
char *p=" ";
char a[]= { 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
for (int i=0;i<=80;i++){
*(p+i)+=(a[(rand()+100)%26]);
}
cout<<p<<endl;
return 0;
}
Надеюсь, вы не генерируете эти ключи для криптографических приложений. rand() не подходит для таких целей. – andand
Что-то, чего я не вижу в другом месте: '' '' '' const char [2] '. Что. Вы можете назначить его символу 'char *' - это случайность; вы по-прежнему не можете назначить новое значение '* p', даже если вы будете осторожны, чтобы оставаться в границах вашего массива. –
Обратите внимание, что в C-стандарте 'sizeof (char)' равно 1. 'sizeof (char)' does ** not ** ссылается на количество октетов, которое занимает один объект 'char' в памяти. –