0

我正在编写一个 eosio 智能合约,它基本上是 C++ 编译成 Webassembly。

使用stofstrtof(要浮动的字符串)cause: access violation\n${callstack}时,运行操作(基本上是一个函数)时出现错误。有趣的是,stoi工作正常。

示例代码

//Will both give the error for any string
//including both valid float representations (e.g. "10.23")
//and also invalid float representations (e.g. "Hello World")
ACTION testcontract::parser1(string text) {
  float val = stof(text);
}
ACTION testcontract::floatparser2(string text) {
  float val = strtof(text.c_str(), nullptr);
}

//Will work
ACTION testcontract::intparser(string text) {
  uint32_t val = stoi(text);
}

这是因为 Webassembly 的一些设计限制吗?一般情况下这是否应该在 Webassembly 中工作(没有 eosio 智能合约)。或者我只是在这里做错了什么?

4

0 回答 0