关于栈区存储为什么不连续问题

朋友们我想问我们写代码的时候如果使用不当不是容易造成栈溢出吗,而不同编译器在连续创建变量时他们的地址与空间又不连续,为什么不让他们连续存放,这样也节省空间了

变量也分多种,例如const static他们就不存放在栈区,而且不同类型的占用空间也不一样,不能以最大的来存,反而浪费空间了