我在openssl中将字符串[10000]转换为BIGNUM [10000]时遇到问题。这是我的代码的一部分:
for(i=0;i<10000;i++){
char * Bchar = new char[Bi[i].size()+1];
copy(Bi[i].begin(), Bi[i].end(), Bchar);
Bchar[Bi[i].size()] = '\0';
BN_dec2bn(&BiNumber[i],Bchar); //PROGRAM CRASH
delete [] Bchar;
}
启动后 - 分段错误(核心转储)问题 我在UBUNTU 13.10工作。
答案 0 :(得分:0)
您忘记初始化BINumber
。
BIGNUM *BINumber[10000];
memset(BINumber, 0, sizeof(BINumber));
在BN_dec2bn
中,如果第一个参数为NULL
,则会分配,否则会尝试使用该内存地址。