[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 184

 
   double Mas[];//массив куда надо заносить данные

如果它输出零,最好附上代码,而不是用手指解释。

如果声明了一个开放的数组,建议做ArrayResize,或者马上声明一个更大的维度。

 
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数组索引 超出范围
 
splxgf:

如果它输出零,最好附上代码,而不是用手指解释。

如果声明了一个开放的数组,建议做ArrayResize,或者立即声明一个更大的尺寸。

我已经在第一个帖子中附上了代码。那里只需要在某个地方添加几条正确的线来形成阵列。这 正是主要问题)。

事实上,我认为它应该是这样的一个地方。

ArrayResize(Mas,n)。

Mas[n]={diff}。

n是新的维度,diff值的结果是差异。

但它不是这样工作的,它打印的是0.00000的差值。我已经尝试在循环中、在循环后面、甚至在条件中插入差异。

简而言之,我处于昏迷状态)。

如果你知道怎么写,我将非常感谢你。

 
splxgf:

该脚本纯粹是为了好玩,但你也可以捕捉Alert(GetLastError());得到

err_array_index_out_of_range4002数组索引超出范围

嗯,事实证明,你在代码中明确指定了数组的大小和值。我在文章中理解的正是这件事。

但我的例子不知为何做不到。

 
NickXXX:

在代码中明确指定数组的尺寸和值

没有其他选择。

  double v1=mas[1];
  mas[1]=89;
  Alert(GetLastError());
  double v2=mas[1];
  Alert(GetLastError());
  ArrayResize(mas,iBars(NULL,0));

元素不是在你访问它们时创建的。

 
splxgf:

没有其他选择。

元素在被访问时不会被创建。

好吧,看。我弄得对吗?

在你的例子中,你要创建一个由89这个单一数值组成的一维数组。

顺便说一下,我说的维度是指一维数组中的元素数量。我想,你可以在项目过程中改变它。毕竟,我们最初没有明确地指定我们的数组,这不是没有原因的。I.e.比如说。

double Mas[]; //初始化一维数组

int n=0; //将对数组元素的 数量有用。

此外,像我的例子中,我们做了以下的循环

for(...)

{

if(...)//我们所关注的条件

{

n++;//计算它工作了多少次

diff=...我们感兴趣的价值

}

}

然后在其他地方用不同的值填充我们的一维数组Mas[n],n是元素的数量。

我想这是很正常的,可以这样做......或者是吗?

 

在为,添加一个ArrayResize 到所需的元素数量上。

例如,该点

  ArrayResize(mas,iBars(NULL,0));

是以当前图表窗口中的条数为导向的,或者你可以直接指定任何接近天文数字的数字,而不是iBars。

数组最初创建时是空的,在访问它之前,你需要指定你想在其中存储多少个元素。发布完整的代码,会更容易浏览。

 
splxgf:

在为,添加一个ArrayResize到所需的元素数量上。

例如,该点

是以当前窗口中图表的条数为导向的,或者你可以直接指定任何接近天文数字的数字来代替iBars。

但之前我们不知道元素的数量,只有当我们计算if条件的数量时才会知道。我试着把ArrayResize 放在for后面,它输出的元素是0。
 

在这个例子中,我表明你不能使用一个没有标记元素数量的数组。

前两次调用会导致错误并返回0。

要除掉蟑螂,只需写上

double mas[999999];

如果成功了,就处理好蟑螂的问题。

 
splxgf:

在这个例子中,我表明你不能使用一个没有标记元素数量的数组。

前两次调用会导致错误并返回0。

要除掉蟑螂,只需写上

如果成功了,就处理好蟑螂的问题。

你不需要从一开始就指定元素的数量,双Mas[]结构也是合适的。