if(stat("seek.pc.db", &files) ==0 )
sizes=files.st_size;
sizes=sizes/sizeof(int);
int s[sizes];
I am compiling this in Visual Studio 2008 and I am getting the following error: error C2057: expected constant expression error C2466: cannot allocate an array of constant size 0.
I tried using vector s[sizes] but of no avail. What am I doing wrong?
Thanks!
Size of an array must be a compile time constant. However, C99 supports variable length arrays. So instead for your code to work on your environment, if the size of the array is known at run-time then -
int *s = malloc(sizes);
// ....
free s;
Regarding the error message:
int a[5];
// ^ 5 is a constant expression
int b = 10;
int aa[b];
// ^ b is a variable. So, it's value can differ at some other point.
const int size = 5;
int aaa[size]; // size is constant.
The sizes of array variables in C must be known at compile time. If you know it only at run time you will have to malloc
some memory yourself instead.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With