堆中的向量与堆栈中的向量

Gon*_*era 2 c heap stack vector

以下是否正确?

"堆中的向量(带sbrkmalloc)从低地址开始,然后变为高地址".

例如:

int *vec = sbrk(5*sizeof(int)):
Run Code Online (Sandbox Code Playgroud)

vec[0]在地址中0x500并且vec[1]0x504.

但是在堆栈中,int vec[5]从高地址到低地址.

例如:

  • vec[0] 在... 0xFF8
  • vec[1]0xFF4.

这样对吗?

ala*_*ain 6

不,这不是真的.

虽然通常堆栈"下降",但这仅对向其添加新对象有效.对象本身的内容仍然与在堆上分配的顺序相同.

否则你不能做指针算术.