-2
我使用下面的代码有一个问题:C++无符号的字符分配问题
unsigned char ciphertext[(int)(strlen ((char *)plaintext) * 1.5)];
当代码击中执行这条线,当尺寸为3687192
失败。
然而,它成功用于以下值:
18
54
60
90
173196
224100
所以,我怎么能解决这个问题?
旁注,声明必须保持格式unsigned char VARNAME
,因为我必须在OPENSSL加密/解密程序中使用它,该程序需要变量为unsigned char
。
在此先感谢。
您正在运行到上一个堆栈帧的大小的限制。动态使用'new char [size];'或使用'std :: string'来分配它。 – Barmar
VLA不是标准的C++。 –
@Barmar'std :: vector'在这种情况下效果更好。 –