我在使用字节时遇到麻烦。 我的代码:
function get() public{
string memory sl = "asddsa";
bytes memory aa = bytes(sl);
log("123");
aa[0] = 2;
}
如果我运行此代码,我将收到没有日志。否则,如果我删除“aa [0] = 2”行,我将收到日志。 我不确定问题是什么,但似乎访问字节元素时出现问题。 以前有人遇到过这种问题吗?请帮我解决一下。谢谢。 顺便说一句,当我把这些代码放入一个库时,运行正常。
答案 0 :(得分:0)
它没有记录,因为您的交易失败了。函数的最后一行(aa[0] = 2;
)正在尝试将值设置为内存动态数组,这是不允许的。您需要将aa
更改为存储变量,或者像这样声明数组的大小:
function get() public{
string memory sl = "asddsa";
byte[] memory aa = new byte[](bytes(sl).length);
log("123");
aa[0] = 2;
}