21xrx.com
2024-11-25 03:17:49 Monday
登录
文章检索 我的文章 写文章
C++ 中的 new 数组长度是否可扩充?
2023-07-04 19:59:32 深夜i     --     --
C++ new 数组长度 可扩充

在C++中,new关键字用于动态分配内存。当使用new操作符分配数组时,需要指定数组长度。但是,一旦数组被创建,它的长度就不能改变了。这意味着在C++中,new数组长度不能扩充或缩小。

以下是一个示例,说明new数组长度无法改变:


int length = 10;

int *newArray = new int[length]; // 创建一个长度为10的数组

length = 20; // 尝试修改数组长度

在上面的示例中,我们使用new创建了一个长度为10的数组。然后,我们尝试将数组长度更改为20。但是,这不会更改分配给数组的内存空间,因此数组长度仍然会保持为10。

如果要扩展数组长度,则需要创建一个新的数组,并将原始的数组复制到新数组中。例如:


int length = 10;

int *oldArray = new int[length]; // 创建一个长度为10的数组

int *newArray = new int[length+5]; // 创建一个长度为15的新数组

for(int i=0; i<length; i++) {

  newArray[i] = oldArray[i]; // 将旧数组中的元素复制到新数组

}

delete [] oldArray; // 释放旧数组的内存

oldArray = newArray; // 将指针指向新数组

length = length + 5; // 更新数组长度

在上面的示例中,我们使用new创建了一个长度为10的数组。然后,我们创建一个长度为15的新数组,并将旧数组中的元素复制到新数组中。最后,我们释放旧数组的内存,将指针指向新数组,并更新数组长度。

总之,在C++中,new数组长度不能扩充或缩小。如果需要更改数组长度,需要创建一个新的数组,并将原始数组中的元素复制到新数组中。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复