在编译阶段,c ++如何处理未知大小的数组分配

Ida*_*dan 1 c++ arrays

我已经了解到c ++在编译阶段使用相对距离以提高代码的性能.例如,它知道两个局部整数的距离是4.我的问题是关于编译期间大小未知的数组

例如,编译器没有在下面的代码中为本地数组分配的内存量信息:它如何知道局部变量local2和size之间的相对距离

#include <iostream>
using namespace std;

int main() {
    int size = std::getchar();
    int arr[size];
    int local2;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

Edw*_*nge 8

C++中不存在可变长度数组:为什么变长数组不是C++标准的一部分?

所以你的问题的答案是:编译器无法知道,也不应该尝试.