这是我的方法之一,哈希有效且已正确分配,但在它退出功能之前,“ 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”。
答案 0 :(得分:4)
您正在返回对局部变量的引用。那绝对是问题。将返回类型更改为std :: string
std::string Block::generateHash(const std::string& str)
{
std::string hash = sha256(str);
return hash;
}