我想知道下面代码中的数组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相互毗连?即,使它们在堆栈中彼此相邻分配.
我在以下代码的最后一行中收到"预期的常量表达式"错误:
int main() {
const float a = 0.5f;
const float b = 2.0f;
int array_of_ints[int(a*b + 1)];
}
Run Code Online (Sandbox Code Playgroud)
我想这是因为int(a*b + 1)在编译期间不知道的事实,对吧?我的问题是:有没有办法编写上面的例子,以便它可以工作,并array_of_ints有大小int(a*b + 1)?
任何帮助或洞察这里发生的事情将不胜感激:)
编辑:我意识到矢量会解决这个问题.但是,我希望数组的内容在堆栈上.