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

时间:2018-10-24 19:59:35

标签: arrays string solidity truffle

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

我正在测试松露和ganache-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;
    }

}

我该如何做?

1 个答案:

答案 0 :(得分:1)

您正在编写超出数组末尾的位置。 (它的长度为0,所以没有空间存储任何东西。)

只需完全丢弃 for (let i = 0; i < name.length; i++) { texthtml += '<option value="'+name[i]+'">'+name[i]+'</option>'; } 并使用index,这将为您增加数组的大小:

push