ubuntu C语言 堆和栈的问题

这是代码:

img

这是结果

img

不是说好的栈内存地址是从高到低吗,为什么我的是从低到高,而且为什么地址相差2,堆内存地址相差16呢? 救救孩子吧各位大佬呜呜呜呜。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 以帮助更多的人 ^-^