动态和静态数组的内存分配和声明

时间:2015-11-20 13:48:30

标签: c++ arrays memory

我是编程新手,所以我可能无法理解这一点,但据我所知,静态数组是一个在编译时定义了内存的数组,并且它的编码语义就像,

int a[5];

和动态数组是在编译期间定义内存的数组,它的编码语义类似于

int* b=new int[5];

现在他们说动态数组在运行时定义了它的内存。但是我已经提供了编译器创建我的数组b所需的所有信息,那么为什么它会等待运行时来创建它的内存。

其次,只要我在我的代码中写作

cin>>n;
int a=[n]

然后它仍然在编译。但是,正如我们所知,编译器需要有关静态数组的数组大小的信息,如果我没有提供有关数组大小的信息,那么如何编译该代码。如果需要在编译期间为该数组定义内存空间,那么它需要有关数组大小的信息。

请尝试解释动态数组是正确的,它的编码声明是什么,静态数组也是如此。

0 个答案:

没有答案