RESOLVIDO!
Basta definir a passagem de referência no nome da matriz e não no tipo da variável. Meu código funcionando agora:
void CopiarMatriz_String(string &matrizFonte_funcao[], string &matrizDestino_funcao[]) { Print(matrizFonte_funcao[0]); ZeroMemory(matrizDestino_funcao); ArrayResize(matrizDestino_funcao, ArraySize(matrizFonte_funcao), 0); ArrayCopy(matrizDestino_funcao, matrizFonte_funcao); } void OnStart() { string matrizFonte[3] = {"A","B","C"}; string matrizDestino[]; CopiarMatriz_String(matrizFonte, matrizDestino)); ArrayPrint(matrizDestino); }
Resultado:
A
"A" "B" "C"
Espero que isso ajude iniciantes como eu a compreender melhor o funcionamento da passagem por referência para funções no MQL5. (lembrando que isso altera os valores fora da função, então muito cuidado!)
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Oi pessoal! Precisava resumir vários processos com vetores/matrizes e acredito que um procedimento tipo void possa fazer o serviço. (ou quem sabe uma função com retorno? mas nem sequer imagino como fazer isso com vetores/matrizes)
Minha função:
Meu código principal:
Os valores no log aparecem nulos...
Alguma dica de como fazer esse procedimento funcionar? E melhor ainda, seria possível retornar os valores da matriz da função para a "matriz de fora"?
Obrigado pela atenção, um abraço!