初学者的问题 MQL5 MT5 MetaTrader 5 - 页 687 1...680681682683684685686687688689690691692693694...1503 新评论 ivanivan_11 2016.12.02 09:39 #6861 我怎么知道为什么这个结构不工作?void OnStart() {//--- double buf[]; ArrayInitialize(buf,0); for(int i=0; i<10; i++) { buf[i]= i; } } 它在'**.mq5'(13,10)中报告了一个错误阵列超出范围。 如果我把字符串double buf[];替换成double buf[10];,那么在数组之外就没有出口。 Artyom Trishkin 2016.12.02 09:43 #6862 ivanivan_11:你能告诉我为什么这种结构不起作用吗?void OnStart() {//--- double buf[]; ArrayInitialize(buf,0); for(int i=0; i<10; i++) { buf[i]= i; } } 报告错误 数组超出范围 在'**.mq5' (13,10) 如果我把字符串double buf[]; 替换成double buf[10]; 则没有退出数组。要么是双buf[10]。或者是双倍的buf[];,但这时一定要ArrayResize(buf,10)。 ivanivan_11 2016.12.02 10:04 #6863 Artyom Trishkin:要么是双buf[10]。或者双倍Buf[];,但这样我就必须做ArrayResize(buf,10)。谢谢你。我还可以解释一下吗?也就是说,如果我初始化一个数组,然后在循环中填充它,它的大小将随着每次迭代而增长,我必须重新定义它的大小? 我以为这是自动完成的,无论我向它添加多少元素。如果我立即用一定数量的元素填充它,我就不必做这个程序。void OnStart() {//--- double buf[]; ArrayInitialize(buf,0); int closed1=CopyClose("EURUSD",NULL,0,3,buf); } Artyom Trishkin 2016.12.02 10:15 #6864 ivanivan_11:谢谢你。我可以说得更清楚吗?也就是说,如果我初始化一个数组,然后在循环中填充它,它的大小会随着每次迭代而增长,我必须重新定义它的大小? 我以为那是自动完成的,无论我向它添加多少元素。而如果我立即用一定数量的元素填充它,我就不必做这样的程序。void OnStart() {//--- double buf[]; ArrayInitialize(buf,0); int closed1=CopyClose("EURUSD",NULL,0,3,buf); }CopyXXXX()函数会自动覆盖传递给它的数组的大小。如果你自己填入数组,如果它是动态的,那么就由程序员来确保它的大小是正确的。当你声明一个数组时,你可以让它一个动态数组,在这种情况下,由你来重新定义其大小。非动态:buff[5] - 在这种情况下,你需要用正确的值来初始化它。非动态:buff[]={10,20,30,40,50}; - 在这种情况下,它在声明时被初始化为数值。 ivanivan_11 2016.12.02 10:21 #6865 Artyom Trishkin:CopyXXXX()函数会自动覆盖传递给它的数组的大小。如果你自己填充数组,如果它是动态的,那就要由程序员来确保它的大小是正确的。当你声明一个数组时,你可以让它一个动态数组,在这种情况下,由你来重新定义其大小。非动态:buff[5] - 在这种情况下,你需要用正确的值来初始化它。非动态:buff[]={10,20,30,40,50}; - 在这种情况下,它被初始化为你声明的值 谢谢你的澄清 Vasiliy Sokolov 2016.12.02 14:23 #6866 谁知道在遗传优化中,运行图中的数字意味着什么?有两个数字,例如0.637或7.27。以及如何选择正确的运行。例如,我对5381的运行号码感兴趣。如何选择它? Roman Ivanov 2016.12.03 20:23 #6867 谁知道括号里的符号是什么?GHPR=(BalanceClose/BalanceOpen)^(1/N) Vladimir Karputov 2016.12.03 20:37 #6868 Roma Ivanov: 谁知道括号里的符号是什么?GHPR=(BalanceClose/BalanceOpen)^(1/N)位数排他性OR操作 Artyom Trishkin 2016.12.03 20:50 #6869 Vladimir Karputov:位操作是一个排他性的OR。真的吗?我一直认为(^)是一个指数。 Artyom Trishkin 2016.12.03 20:59 #6870 Roma Ivanov: 谁知道括号里的符号是什么?GHPR=(BalanceClose/BalanceOpen)^(1/N) 学位转换。 1...680681682683684685686687688689690691692693694...1503 新评论 原因: 取消 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我怎么知道为什么这个结构不工作?
{
//---
double buf[];
ArrayInitialize(buf,0);
for(int i=0; i<10; i++)
{
buf[i]= i;
}
}
如果我把字符串double buf[];替换成double buf[10];,那么在数组之外就没有出口。
你能告诉我为什么这种结构不起作用吗?
{
//---
double buf[];
ArrayInitialize(buf,0);
for(int i=0; i<10; i++)
{
buf[i]= i;
}
}
如果我把字符串double buf[]; 替换成double buf[10]; 则没有退出数组。
要么是双buf[10]。
或者是双倍的buf[];,但这时一定要ArrayResize(buf,10)。
要么是双buf[10]。
或者双倍Buf[];,但这样我就必须做ArrayResize(buf,10)。
谢谢你。
我还可以解释一下吗?
也就是说,如果我初始化一个数组,然后在循环中填充它,它的大小将随着每次迭代而增长,我必须重新定义它的大小? 我以为这是自动完成的,无论我向它添加多少元素。
如果我立即用一定数量的元素填充它,我就不必做这个程序。
{
//---
double buf[];
ArrayInitialize(buf,0);
int closed1=CopyClose("EURUSD",NULL,0,3,buf);
}
谢谢你。
我可以说得更清楚吗?
也就是说,如果我初始化一个数组,然后在循环中填充它,它的大小会随着每次迭代而增长,我必须重新定义它的大小? 我以为那是自动完成的,无论我向它添加多少元素。
而如果我立即用一定数量的元素填充它,我就不必做这样的程序。
{
//---
double buf[];
ArrayInitialize(buf,0);
int closed1=CopyClose("EURUSD",NULL,0,3,buf);
}
CopyXXXX()函数会自动覆盖传递给它的数组的大小。
如果你自己填入数组,如果它是动态的,那么就由程序员来确保它的大小是正确的。
当你声明一个数组时,你可以让它
CopyXXXX()函数会自动覆盖传递给它的数组的大小。
如果你自己填充数组,如果它是动态的,那就要由程序员来确保它的大小是正确的。
当你声明一个数组时,你可以让它
谁知道括号里的符号是什么?GHPR=(BalanceClose/BalanceOpen)^(1/N)
位操作是一个排他性的OR。
真的吗?
我一直认为(^)是一个指数。
谁知道括号里的符号是什么?GHPR=(BalanceClose/BalanceOpen)^(1/N)