异常:内存位置0x00CFEC24处的std::length_error



这是我的一个方法,哈希可以工作,并且分配正确,但就在它退出函数之前,"blockHash"变成了",它给了我上面的错误。

Block::Block(int index, const double amount, const std::string& senderKey, 
const std::string& 
receiverKey, const std::string& prevHash, time_t timestamp)
:nrTransactions(0)
{
std::string str = std::to_string(amount);
this->blockHash = generateHash(str);
}

这似乎是问题所在:

std::string& Block::generateHash(const std::string& str)
{
std::string hash = sha256(str);
return hash;
}

对于第一块,我做了金额"0"。

您正在返回对局部变量的引用。这绝对是个问题。将返回类型更改为std::string

std::string Block::generateHash(const std::string& str)
{
std::string hash = sha256(str);
return hash;
}

相关内容

最新更新