У меня возникли проблемы с помощью кода ниже:C++ символ без знака распределения вопроса
unsigned char ciphertext[(int)(strlen ((char *)plaintext) * 1.5)];
Когда код попадет эту линию на выполнение, он терпит неудачу, когда размер 3687192
.
Однако это удается при следующих значениях:
18
54
60
90
173196
224100
Итак, как я могу решить эту проблему?
Sidenote, декларация ДОЛЖНА оставаться в формате unsigned char VARNAME
, так как я должен использовать его в процедуре шифрования/дешифрования OPENSSL, для которой требуется переменная unsigned char
.
Заранее спасибо.
Вы бежите в предел по размеру кадра стека. Выделите его динамически с помощью 'new char [size];' или используйте 'std :: string'. – Barmar
VLA не являются стандартными C++. –
@Barmar 'std :: vector' работает еще лучше в этом случае. –