If you declare
int x[500][1000];
does x[i] give you the pointer to the first element in the i:th-array? Or is x[i] the whole i:th array itself?
Also, a declaration
char string[100];
will give the expression sizeof(string) the value 100. But a declaration
char *string;
string = malloc(100);
will give the same expression the value 4 cause then it's a ponter? Is there any way to se how large the allocated memory is? I mean, when you use free(string), it must be known somewere how big the allocated area is, right? And then you could be able to check how large area you allocated?