¿Cómo funciona esta estructura?

¿Por qué esto no funciona?

struct Structure {
    string _var;
}

Structure[] structure;

function addStructure(string _var) {
    Structure _s = Structure(_var);
    ->> structure.push(_s);
}

mientras esto funciona

struct Structure {
    string _var;
}

Structure[] structure;

function addStructure(string _var) {
    X
    ->> structure.push(Structure(_var));
}

Vi esto en un tutorial pero no me funciona. ¡Gracias por la explicación!

¿Qué error estás recibiendo?

Respuestas (1)

Intente usar la palabra clave de memoria:

struct Structure {
    string _var;
} 

Structure[] structure;

function addStructure(string _var) {
    Structure memory _s = Structure(_var);
    structure.push(_s);
}

La forma en que lo escribió, _s se interpretó como una referencia a la memoria de almacenamiento (permanente). El compilador no permitirá una conversión implícita de la variable de memoria temporal en una referencia de almacenamiento. La inserción copia la referencia de memoria en la matriz de estructura permanente.

¡Muchas gracias, eso lo resolvió y me dio un consejo sobre dónde buscar!