How is Stack limit different , can you please elaborate on it a little more..i thought they share the same memory space<stack grows towards lower memory address,heap grows towards Higher memory address>...

and as for "also you store the pointer to the heap in Stack and its not same memory."
consider this :

#include "stdio.h"
int i=malloc(10000);//i will be stored in Data Segment in the read-write portion, and it will point to Heap.

int main()
{
free(i);
return;
}


instead of doing a malloc, i can also use the following method:
#include "stdio.h"

int main()
{
int i[1000]=NULL;//i is allocated on stack, and will be freed when main returns.
return ;
}

the Only difference i could come up with is dynamically controlling the size of memory,but still why are we not allowed to to use stack for dynamic allocation?????????????...