On 31/08/15 11:24 PM, Namal wrote:
Hello,
can someone explain to me please what I am doing wrong by passing an
integer to this function and then just creating a static array? The
error I get is:
Error: variable N cannot be read at compile time
int[] foo(int N){
int[N] v;
//do something with it
int[] s;
return s;
}
void main(){
int N = 12;
int[] A;
A=prim_numbers(N);
}
You cannot define static arrays using runtime information.
You must use dynamic arrays.
int[] foo(int N) {
int[] v;
v.length = N;
// do something with it
int[] 2;
return s;
}
Of course you can pass it in via a template argument. But this of course
does not work at runtime like you are wanting.