这是我的一个方法,哈希可以工作,并且分配正确,但就在它退出函数之前,"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;
}