Solution #1: The direction of stack growth depends on OS as well as on the architecture. Below is a program to detect the direction of stack growth,
void b(int* x)
{
int y;
//if address of y is less than address of x
//then the direction is downwards, upwards otherwise
if(&y < x)
printf("Stack growing downwards.\n");
else
printf("Stack growing upwards.\n");
}
void a()
{
int x;
b(&x);
}
int main()
{
a();
return 0;
}