C 数组地址是随机的还是固定的?

C 数组地址是随机的还是固定的?,c,arrays,C,Arrays,假设我们第一次运行这个程序,cmu的地址是堆栈中的20。当我们再次运行这个程序时,cmu的地址在堆栈中仍然是20,还是一个不同的数字?如果它们是不同的地址,是什么使它们不同:编译器还是操作系统?大多数现代操作系统支持某种ASLR(地址空间布局随机化),即堆栈地址、加载地址等的随机化。如果你想得到更详细的答案,请在谷歌上搜索ASLR。@lilicent回答得不错!如果你把它贴上去,我会投你的票。 typedef int zip_dig[5]; zip_dig cmu = { 1, 5, 2, 1,

假设我们第一次运行这个程序,cmu的地址是堆栈中的20。当我们再次运行这个程序时,cmu的地址在堆栈中仍然是20,还是一个不同的数字?如果它们是不同的地址,是什么使它们不同:编译器还是操作系统?

大多数现代操作系统支持某种ASLR(地址空间布局随机化),即堆栈地址、加载地址等的随机化。如果你想得到更详细的答案,请在谷歌上搜索ASLR。

@lilicent回答得不错!如果你把它贴上去,我会投你的票。
typedef int zip_dig[5];
zip_dig cmu = { 1, 5, 2, 1, 3 };