Arrays 创建后重新初始化数组

Arrays 创建后重新初始化数组,arrays,Arrays,出于纯粹的兴趣,为什么大多数编程语言不允许程序员在数组创建后重新初始化它 例子 解释我的意思 如上所示,我创建了一个4x4的数组,然后分配了一个值,然后用8x8的新大小重新初始化同一数组,然后分配了另一个值。理论上,我更希望它销毁旧阵列的内容(因此我的新8x8阵列在0x1处没有该值) 然而,我已经到处搜索了,但是我还没有找到任何东西来解释为什么编程语言强制执行这个限制。在我看来,允许这样做似乎非常有益,但我看不到任何紧迫的问题。但显然存在一个问题,否则这是允许的 问题: 所以我的问题是:编程语言

出于纯粹的兴趣,为什么大多数编程语言不允许程序员在数组创建后重新初始化它

例子 解释我的意思 如上所示,我创建了一个4x4的数组,然后分配了一个值,然后用8x8的新大小重新初始化同一数组,然后分配了另一个值。理论上,我更希望它销毁旧阵列的内容(因此我的新8x8阵列在0x1处没有该值)

然而,我已经到处搜索了,但是我还没有找到任何东西来解释为什么编程语言强制执行这个限制。在我看来,允许这样做似乎非常有益,但我看不到任何紧迫的问题。但显然存在一个问题,否则这是允许的

问题:
所以我的问题是:编程语言不允许程序员在数组创建后重新初始化它的原因是什么?

初始化可以一直进行到代码不处于运行状态,这就是为什么初始化只能在代码中进行一次,如果初始化同一数组,则第二次可以进行初始化,它已经脱离了创建阶段,现在处于运行阶段

为了更清晰,数组的大小在编译时需要是一个常量,因为它可能会在某个地方的代码中使用

int i=arr.lenght;
if(i<5)
{
//do something}
int i=arr.lenght;

如果(i初始化可以一直进行到代码不处于运行状态,这就是为什么初始化只能在代码中进行一次,如果您正在初始化同一个数组,则第二次初始化已经超出创建阶段,现在处于运行阶段

为了更清晰,数组的大小在编译时需要是一个常量,因为它可能会在某个地方的代码中使用

int i=arr.lenght;
if(i<5)
{
//do something}
int i=arr.lenght;

如果(我有点困惑,如果这属于程序员网站,那么主持人可以移动它。我明显不能移动我自己的问题,我不确定这是否应该在Stackoverflow或程序员网站上?有点困惑,如果这属于程序员网站,那么主持人可以移动它。我明显不能移动我自己的问题,我不确定是什么这应该是在Stackoverflow或程序员上?那么,你是说这是因为数组在调整大小时可能在其他地方被引用。为什么这不能返回一个错误?比如:越界?那么,你是说这是因为数组在调整大小时可能在其他地方被引用。为什么这不能返回一个e错误?比如:出界?