我想从我的函数返回一个数组,我该怎么做? 瞧!
int GetOrdresVente(){
int ordrevente;
int Tabordresvente[];
for(int j = OrdersTotal() - 1; j >= 0 ; j--){
if(OrderSelect( j, SELECT_BY_POS ) == true){
if(OrderSymbol() == Symbol()){
if(OrderType() == OP_SELL ){
ordrevente = OrderTicket();
ArrayResize( Tabordresvente, ArraySize( Tabordresvente ) + 1);
Tabordresvente[ArrayResize( Tabordresvente, ArraySize( Tabordresvente ) - 1 )] = ordrevente;
}
}
}
}
return Tabordresvente;
}
感谢您的回复!
答案 0 :(得分:2)
不可能。创建一个数组,将其传递给函数,在函数内部运行,因为数组总是通过引用传递,而不是通过值传递。
void OnTick(){
int array[];
GetOrdresVente(array);
}
void GetOrdresVente(int &array[]){
//use counter and size of the array or CArrayInt* and do not resize every time
int counter=0,size=OrdersTotal();
ArrayResize(array,size);
for(int i=OrdersTotal()-1;i>=0;i--){
if(OrderSelect(i,SELECT_BY_POS){
if(OrderType()==OP_SELL){
array[counter++]=OrderTicket();
}
}
}
ArrayResize(array,counter);
return;
}