Isto é normal e absolutamente correcto. Pediu o tamanho interno (sem carga útil) de um objecto dinâmico.
Utilizar o ArraySize para objectos dinâmicos e aplicar o sizeof apenas a objectos estáticos. O tamanho é contado em tempo de compilação e é sempre uma constante.
Estou a pedir ajuda, eu próprio estou perplexo. Escrevi este guião para explicar.
struct STRUCT
{
int a;
};
class CLASS
{
public:
int a;
};
STRUCT f1()
{
staticint i = 0;
STRUCT Res;
Res.a = i++;
return(Res);
}
CLASS* f2()
{
staticint i = 0;
CLASS* Res = new CLASS;
Res.a = i++;
return(Res);
}
voidOnStart()
{
int i1 = f1().a + f1().a;
int i2 = f2().a + f2().a;
}
Há uma estrutura e há uma classe semelhante. Preciso, que após o cálculo i2, os objectos de classe correspondentes sejam removidos espontaneamente, como acontece com os objectos de estrutura, quando o mesmo cálculo i1 é efectuado. Como fazer isto?
Комбинатор: Embrulhe-o num ponteiro inteligente, não sei se pode ser feito por mql
O problema em si é causado pela incapacidade de devolver uma estrutura complexa. Por exemplo, se no código acima em vez de int a; faça string a;, então f1() falhará no regresso. Foi por isso que os meus olhos caíram sobre as aulas, mas lá a armadilha descrita aguardava.
O (0, 3) testado com erro "erro crítico de tempo de execução 512 na função OnTimer (função sono chega ao fim do teste)" às 0:37:20.429 + sincronização do histórico 0:00:43.395
Isto é normal e absolutamente correcto. Pediu o tamanho interno (sem carga útil) de um objecto dinâmico.
Utilizar o ArraySize para objectos dinâmicos e aplicar o sizeof apenas a objectos estáticos. O tamanho é contado em tempo de compilação e é sempre uma constante.
Isto é normal e absolutamente correcto.
Utilizar o ArraySize para objectos dinâmicos e aplicar o sizeof apenas a objectos estáticos.
Ler a documentação até ao fim
Вычисления размера происходит на этапе компиляции.
Estou a pedir ajuda, eu próprio estou perplexo. Escrevi este guião para explicar.
Há uma estrutura e há uma classe semelhante. Preciso, que após o cálculo i2, os objectos de classe correspondentes sejam removidos espontaneamente, como acontece com os objectos de estrutura, quando o mesmo cálculo i1 é efectuado. Como fazer isto?
fxsaber:
Como é que faço isto?
Embrulhe-o num ponteiro inteligente, não sei se pode ser feito por mql
Geralmente, pode anular a cópia do construtor e o operador=
Isto não funcionará para as aulas, é suposto serem devolvidas apenas por ponteiro, as estruturas podem ser devolvidas por valor.
Em geral, pode anular a cópia do construtor e o operador=
Isto não funcionará para as aulas, é suposto serem devolvidas apenas por ponteiro, as estruturas podem ser devolvidas por valor.
Durante a optimização do Expert Advisor, recebo o seguinte erro
O (0, 3) testado com erro "erro crítico de tempo de execução 512 na função OnTimer (função sono chega ao fim do teste)" às 0:37:20.429 + sincronização do histórico 0:00:43.395
Passes de teste únicos sem erros.
Versão do MT5 e MetaEditor é 1571.
Durante a optimização do Expert Advisor, recebo o seguinte erro
O erro "critical runtime error 512 na função OnTimer (função sleep chega ao fim do teste)" às 0:37:20.429 + sincronização do histórico 0:00:43.395
Remover a quantidade máxima de código do Expert Advisor, para que o erro seja reprodutível. E publicar o código restante.