如何在 Solidity 合约中存储字符串?



我正在创建一个存储字符串数组的合约。

我正在测试松露和甘纳许 cli 的合同。当我用任何字符串调用方法putData()时,它会给出错误Error: VM Exception while processing transaction: invalid opcode

这是代码:

pragma solidity ^0.4.24;
contract DataContract {
address public owner;
uint public index = 0;
string[] public data;
// Constructor
constructor() public {
owner = msg.sender;
}
function putData(string _d) public {
data[index] = _d;
index = index + 1;
}
}

我怎样才能做到这一点?

你正在写数组的末尾。(它的长度为 0,因此没有空间存储任何内容。

只需完全删除index内容并使用push,这将为您增加数组的大小:

function putData(string  _d) public {
data.push(_d);
}

相关内容

  • 没有找到相关文章

最新更新