Die*_*ser 5 c++ variables contiguous
我想知道下面代码中的数组a和b是否在内存中是连续的:
int main() {
int a[3];
int b[3];
return 0;
}
Run Code Online (Sandbox Code Playgroud)
a[0],a[1]并且a[2]应该是连续的和相同的b,但是否有任何关于b将在哪里分配的保证a?
如果没有,有没有办法强迫a和b相互毗连?即,使它们在堆栈中彼此相邻分配.
Lig*_*ica 16
不,C++不保证这些变量在内存中的位置.一个或两个可能甚至是在内存中(例如,如果它们被优化掉了)!
为了获得两者之间的相对排序,至少,你必须将它们封装到一个structor中class,即使这样,也要考虑填充/对齐.