Ethereum 一个地址[]中可以存储多少个地址

Ethereum 一个地址[]中可以存储多少个地址,ethereum,solidity,smartcontracts,Ethereum,Solidity,Smartcontracts,我正在建立一个合同,要求新用户发送0.1以太,以便进入一轮投资 我已经为此挣扎了一段时间,我不知道如何在合同中存储新投资者的地址,以便以后使用“地址索引” 就我所见,不推荐使用动态阵列,因为它们很容易使用“太多的气体”,从而使合同永远无法履行 我如何知道在地址[]中实际可以存储多少地址 我假设可以做一个简单的测试,但我不知道怎么做 这是我正在使用的代码。它是根据罗布·希钦斯写的伟大作品改编的 address[] userIndex; // New user address gets s

我正在建立一个合同,要求新用户发送0.1以太,以便进入一轮投资

我已经为此挣扎了一段时间,我不知道如何在合同中存储新投资者的地址,以便以后使用“地址索引”

就我所见,不推荐使用动态阵列,因为它们很容易使用“太多的气体”,从而使合同永远无法履行

  • 我如何知道在地址[]中实际可以存储多少地址
我假设可以做一个简单的测试,但我不知道怎么做

这是我正在使用的代码。它是根据罗布·希钦斯写的伟大作品改编的

address[] userIndex;    // New user address gets stored in dynamic array

function invest() public payable {  

    require(msg.value == 0.1 ether);    // checks if new investor sent 0.1 ether
    userIndex.push(msg.sender);        // adds new user to userIndex  

}

动态数组中可以存储多少项没有限制。(从技术上讲,有2^256的限制,但这取决于已知宇宙中有多少原子。)


阵列中项目的数量根本不会影响气体的使用。可以消耗大量气体的是枚举一个大型数组。(在这种情况下,重要的是通过运行长循环执行了大量代码。)

感谢您的快速回答。我不明白你说的列举是什么意思。我计划创建一个循环,按如下顺序遍历地址数组:for(uint I=0;I