C compile error: Variable-sized object may not be initialized
C compile error: Variable-sized object may not be initialized
I am assuming that you are using a C99 compiler (with support for dynamically sized arrays). The problem in your code is that at the time when the compilers sees your variable declaration it cannot know how many elements there are in the array (I am also assuming here, from the compiler error that length
is not a compile time constant).
You must manually initialize that array:
int boardAux[length][length];
memset( boardAux, 0, length*length*sizeof(int) );
You receive this error because in C language you are not allowed to use initializers with variable length arrays. The error message you are getting basically says it all.
6.7.8 Initialization
…
3 The type of the entity to be initialized shall be
an array of unknown size or an object
type that is not a variable length
array type.
C compile error: Variable-sized object may not be initialized
This gives error:
int len;
scanf(%d,&len);
char str[len]=;
This also gives error:
int len=5;
char str[len]=;
But this works fine:
int len=5;
char str[len]; //so the problem lies with assignment not declaration
You need to put value in the following way:
str[0]=a;
str[1]=b; //like that; and not like str=ab;