【发布时间】:2014-02-17 23:51:30
【问题描述】:
假设我正在编写一个 C 程序,它具有:
int a = 1;
int b = 5;
int *p = &a;
意志:
int k = *(p+1);
总是给k = 5?
正式地:
栈上变量地址的这个“连续”属性是否依赖于实现?如果没有,是否有任何保证(例如&a < &b < &p)?
(这个在 ubuntu 上使用 gcc 的简单测试给出了k=5,但是其他涉及不同类型的测试不起作用)
【问题讨论】:
-
如果想要连续内存,使用数组分配
-
我只是想获得更多关于堆栈段的信息。不过还是谢谢。
标签: c memory-management