Arrays de Memória Dinâmica
Parte da seção Fundamentos do Journey de Solidity da Coddy. Lição 37 de 53.
Use new uint256[](length) para alocar um array na memória com um comprimento escolhido em tempo de execução. Seus elementos começam em zero. Embora o tipo use colchetes vazios, o array alocado na memória não pode ser redimensionado com push ou pop.
As instruções neste trecho são executadas dentro da função main fornecida.
uint256[] memory values = new uint256[](3);
values[1] = 19;
console.log(values.length);
console.log(values[0]);O array tem três posições e apenas a posição do meio foi atribuída. Seu primeiro elemento permanece zero. A propriedade length informa quantos elementos existem, não o valor do último elemento.
Um array de memória uint256 recém-alocado começa com elementos de valor zero.
Desafio
FácilAlocar um array na memória de comprimento n, definir seu último elemento como marker e, em seguida, imprimir seu comprimento e o último elemento. n está entre 1 e 8.
Os testes passam os argumentos para main nesta ordem: uint256 n, uint256 marker. Cada teste começa com um estado novo do contrato.
Use console.log para a saída solicitada. Imprima apenas os valores solicitados, um por linha, sem rótulos adicionais, a menos que a tarefa os especifique.
Experimente você mesmo
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
function main(uint256 n, uint256 marker) external view {
// Escreva sua solução aqui.
}
}Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentos
2Variáveis e Tipos
Inteiros sem sinalEntradas e saídasInteiros com sinalValores booleanosStrings na memóriaCartão de perfil5Funções
Parâmetros de FunçãoRetorno de ValoresFunções PurasChamadas AuxiliaresCálculos Reutilizáveis8Arrays
Arrays de Tamanho FixoArrays de Memória DinâmicaArrays de ArmazenamentoPercorrendo ArraysResumo de ArraysPratique por conta própria: Playground de Solidity