Olá Ruy,
ArrayInitialize(TempArray,EMPTY_VALUE);
Será que inicializando o array funciona?
Teste depois nos conte.
Olá Ruy,
ArrayInitialize(TempArray,EMPTY_VALUE);
Será que inicializando o array funciona?
Teste depois nos conte.
Oi Ivan,
Coloquei, fiz essas 3 tentativas (somente com o ArrayFree; somente com o ArrayInitialize; e ambos), teve mudanças, mas olhe que desinteressante como ficou rsrs:
int TempArray[22][36]; ArrayFree(TempArray); ArrayInitialize(TempArray,EMPTY_VALUE); TempArray[21][1]=10; TempArray[21][3]=11; TempArray[21][7]=12; TempArray[20][1]=20; TempArray[0][1]=30; TempArray[0][7]=32; ArrayPrint(TempArray);
Muito doido! algo tá passando batido ai... E já li minunciosamente esse Artigo https://www.mql5.com/pt/articles/567 e não encontrei o que é.
Oi Ivan,
Coloquei, fiz essas 3 tentativas (somente com o ArrayFree; somente com o ArrayInitialize; e ambos), teve mudanças, mas olhe que desinteressante como ficou rsrs:
Muito doido! algo tá passando batido ai... E já li minunciosamente esse Artigo https://www.mql5.com/pt/articles/567 e não encontrei o que é.
Ruy isso é normal,
Vc criou uma variável e não atribuiu valor, automaticamente o compilador atribuiu um valor.
Faça um teste besta e veja.
int x; Print(x);
isso fara a impressão de um valor aleatório.
Em java te retorna um erro de inicialização de variável.
package teste; public class HelloWorld { public static void main(String[] args) { int x; System.out.println(x); } } /* Compilation Errors Detected File: ../../../HelloWorld.java Line: 7 variable x might not have been initialized */
Em C++ ele atribui 0.
#include <iostream> int main() { int x; std::cout << "Retorno:"; std::cout << x; } /* Retorno:0 */
Já vi em outras linguagens acontecer de ter lixo no array.
Ivan, deu certo assim:
ArrayInitialize(TempArray, 0);
Preencheu tudo com zero, pois realmente se tentar deixar em branco ele grava lixo de memória.
Obrigado :)
Ruy isso é normal,
Vc criou uma variável e não atribuiu valor, automaticamente o compilador atribuiu um valor.
Faça um teste besta e veja.
isso fara a impressão de um valor aleatório.
Em java te retorna um erro de inicialização de variável.
Em C++ ele atribui 0.
Jonathannnnnnnnnnnnnnnnn :)
Pois eh meu amigo, esse "normal" ai quase me deixou doido a manhã toda kkkkk.
Fiz ela iniciar tudo com zero, já sei que não pode deixar slot empty em arrays do MQL5 pelo jeito rsrsrs.
Jonathannnnnnnnnnnnnnnnn :)
Pois eh meu amigo, esse "normal" ai quase me deixou doido a manhã toda kkkkk.
Fiz ela iniciar tudo com zero, já sei que não pode deixar slot empty em arrays do MQL5 pelo jeito rsrsrs.
Não só em arrays, qualquer tipo de dado.
Inclusive uma curiosidade....
se vc cria um enumerador e uma variável desse enumerador e não atribui nada, ele automaticamente pega o primeiro valor da enumeração.... :D
Bom dia pessoal, uma ajudinha do povo expert por gentileza :)
Testando aqui um array bidirecional no MQL5, fiz um script só pra teste e coloquei apenas essas linhas abaixo:
Mas o danado após executar me retorna esse quadro abaixo. Dai vem a pergunta: De onde vem esses valores compridos que não fui eu que inseri? Exemplo, na posição [19][0] ele tem -2066310616, bem como em outras posições tem outros valores estranhos.
Você precisa religiosamente tratar cada elemento de um array ou buffer... Ou você vai se f*...
Do contrário, ele atribui o valor EMPTY_VALUE aos elementos, que NÃO é Zero... É EMPTY_VALUE mesmo...
O MQL5 é uma linguagem com várias arestas e bizarrices, essa é uma delas... Não sei se é o seu caso aí, pois depende de como e onde o vetor foi criado, e onde ele é processado, às vezes ele põe sujeira de memória mesmo, coisa que não deveria ocorrer em uma linguagem da Alto Nível como o MQL5, linguagem herdada, - e, poderia ser mais caprichada, já que o objetivo é operar o mercado finenceiro e não desenvolver interfaces na NASA - do C++...
Quer uma bizarrice a mais? Tente dar um ArraySize() em um vetor bi-dimensional...
É por essas e outras que a plataforma não evolui em número de usuários programadores como deveria...
;)
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Bom dia pessoal, uma ajudinha do povo expert por gentileza :)
Testando aqui um array bidirecional no MQL5, fiz um script só pra teste e coloquei apenas essas linhas abaixo:
Mas o danado após executar me retorna esse quadro abaixo. Dai vem a pergunta: De onde vem esses valores compridos que não fui eu que inseri? Exemplo, na posição [19][0] ele tem -2066310616, bem como em outras posições tem outros valores estranhos.