[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 184 1...177178179180181182183184185186187188189190191...652 新评论 Всеволод 2011.09.17 18:41 #1831 double Mas[];//массив куда надо заносить данные 如果它输出零,最好附上代码,而不是用手指解释。 如果声明了一个开放的数组,建议做ArrayResize,或者马上声明一个更大的维度。 Всеволод 2011.09.17 18:51 #1832 double mas[]; int start() { double v1=mas[1]; mas[1]=89; double v2=mas[1]; ArrayResize(mas,iBars(NULL,0)); double v3=mas[1]; mas[1]=89; double v4=mas[1]; Alert(v1,"-",v2,"-",v3,"-",v4); return(0); } 该脚本纯粹是为了好玩,但你也可以捕捉Alert(GetLastError());得到 err_array_index_out_of_range4002数组索引 超出范围 [删除] 2011.09.17 18:58 #1833 splxgf: 如果它输出零,最好附上代码,而不是用手指解释。 如果声明了一个开放的数组,建议做ArrayResize,或者立即声明一个更大的尺寸。 我已经在第一个帖子中附上了代码。那里只需要在某个地方添加几条正确的线来形成阵列。这 正是主要问题)。 事实上,我认为它应该是这样的一个地方。 ArrayResize(Mas,n)。 Mas[n]={diff}。 n是新的维度,diff值的结果是差异。 但它不是这样工作的,它打印的是0.00000的差值。我已经尝试在循环中、在循环后面、甚至在条件中插入差异。 简而言之,我处于昏迷状态)。 如果你知道怎么写,我将非常感谢你。 [删除] 2011.09.17 19:04 #1834 splxgf: 该脚本纯粹是为了好玩,但你也可以捕捉Alert(GetLastError());得到 err_array_index_out_of_range4002数组索引超出范围 嗯,事实证明,你在代码中明确指定了数组的大小和值。我在文章中理解的正是这件事。 但我的例子不知为何做不到。 Всеволод 2011.09.17 19:13 #1835 NickXXX: 在代码中明确指定数组的尺寸和值 没有其他选择。 double v1=mas[1]; mas[1]=89; Alert(GetLastError()); double v2=mas[1]; Alert(GetLastError()); ArrayResize(mas,iBars(NULL,0)); 元素不是在你访问它们时创建的。 [删除] 2011.09.17 19:35 #1836 splxgf:没有其他选择。 元素在被访问时不会被创建。好吧,看。我弄得对吗? 在你的例子中,你要创建一个由89这个单一数值组成的一维数组。 顺便说一下,我说的维度是指一维数组中的元素数量。我想,你可以在项目过程中改变它。毕竟,我们最初没有明确地指定我们的数组,这不是没有原因的。I.e.比如说。 double Mas[]; //初始化一维数组 int n=0; //将对数组元素的 数量有用。 此外,像我的例子中,我们做了以下的循环 for(...) { if(...)//我们所关注的条件 { n++;//计算它工作了多少次 diff=...我们感兴趣的价值 } } 然后在其他地方用不同的值填充我们的一维数组Mas[n],n是元素的数量。 我想这是很正常的,可以这样做......或者是吗? Всеволод 2011.09.17 19:45 #1837 在为,添加一个ArrayResize 到所需的元素数量上。 例如,该点 ArrayResize(mas,iBars(NULL,0)); 是以当前图表窗口中的条数为导向的,或者你可以直接指定任何接近天文数字的数字,而不是iBars。 数组最初创建时是空的,在访问它之前,你需要指定你想在其中存储多少个元素。发布完整的代码,会更容易浏览。 [删除] 2011.09.17 19:48 #1838 splxgf:在为,添加一个ArrayResize到所需的元素数量上。例如,该点 是以当前窗口中图表的条数为导向的,或者你可以直接指定任何接近天文数字的数字来代替iBars。 但之前我们不知道元素的数量,只有当我们计算if条件的数量时才会知道。我试着把ArrayResize 放在for后面,它输出的元素是0。 Всеволод 2011.09.17 20:20 #1839 在这个例子中,我表明你不能使用一个没有标记元素数量的数组。 前两次调用会导致错误并返回0。 要除掉蟑螂,只需写上 double mas[999999]; 如果成功了,就处理好蟑螂的问题。 [删除] 2011.09.17 20:28 #1840 splxgf: 在这个例子中,我表明你不能使用一个没有标记元素数量的数组。 前两次调用会导致错误并返回0。 要除掉蟑螂,只需写上 如果成功了,就处理好蟑螂的问题。 你不需要从一开始就指定元素的数量,双Mas[]结构也是合适的。 1...177178179180181182183184185186187188189190191...652 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
如果它输出零,最好附上代码,而不是用手指解释。
如果声明了一个开放的数组,建议做ArrayResize,或者马上声明一个更大的维度。
该脚本纯粹是为了好玩,但你也可以捕捉Alert(GetLastError());得到
如果它输出零,最好附上代码,而不是用手指解释。
如果声明了一个开放的数组,建议做ArrayResize,或者立即声明一个更大的尺寸。
我已经在第一个帖子中附上了代码。那里只需要在某个地方添加几条正确的线来形成阵列。这 正是主要问题)。
事实上,我认为它应该是这样的一个地方。
ArrayResize(Mas,n)。
Mas[n]={diff}。
n是新的维度,diff值的结果是差异。
但它不是这样工作的,它打印的是0.00000的差值。我已经尝试在循环中、在循环后面、甚至在条件中插入差异。
简而言之,我处于昏迷状态)。
如果你知道怎么写,我将非常感谢你。
该脚本纯粹是为了好玩,但你也可以捕捉Alert(GetLastError());得到
嗯,事实证明,你在代码中明确指定了数组的大小和值。我在文章中理解的正是这件事。
但我的例子不知为何做不到。
在代码中明确指定数组的尺寸和值
没有其他选择。
元素不是在你访问它们时创建的。
没有其他选择。
元素在被访问时不会被创建。
好吧,看。我弄得对吗?
在你的例子中,你要创建一个由89这个单一数值组成的一维数组。
顺便说一下,我说的维度是指一维数组中的元素数量。我想,你可以在项目过程中改变它。毕竟,我们最初没有明确地指定我们的数组,这不是没有原因的。I.e.比如说。
double Mas[]; //初始化一维数组
int n=0; //将对数组元素的 数量有用。
此外,像我的例子中,我们做了以下的循环
for(...)
{
if(...)//我们所关注的条件
{
n++;//计算它工作了多少次
diff=...我们感兴趣的价值
}
}
然后在其他地方用不同的值填充我们的一维数组Mas[n],n是元素的数量。
我想这是很正常的,可以这样做......或者是吗?
在为,添加一个ArrayResize 到所需的元素数量上。
例如,该点
是以当前图表窗口中的条数为导向的,或者你可以直接指定任何接近天文数字的数字,而不是iBars。
数组最初创建时是空的,在访问它之前,你需要指定你想在其中存储多少个元素。发布完整的代码,会更容易浏览。
在为,添加一个ArrayResize到所需的元素数量上。
例如,该点
是以当前窗口中图表的条数为导向的,或者你可以直接指定任何接近天文数字的数字来代替iBars。
在这个例子中,我表明你不能使用一个没有标记元素数量的数组。
前两次调用会导致错误并返回0。
要除掉蟑螂,只需写上
double mas[999999];
如果成功了,就处理好蟑螂的问题。
在这个例子中,我表明你不能使用一个没有标记元素数量的数组。
前两次调用会导致错误并返回0。
要除掉蟑螂,只需写上
如果成功了,就处理好蟑螂的问题。
你不需要从一开始就指定元素的数量,双Mas[]结构也是合适的。