21xrx.com
2024-12-22 15:58:26 Sunday
登录
文章检索 我的文章 写文章
如何获取C++中使用new创建的数组的长度?
2023-07-14 02:46:33 深夜i     --     --
C++ new 数组 长度 获取

在C++中,我们可以使用new关键字动态创建数组。与静态数组不同,动态数组的长度在运行时才能得知。因此,在某些情况下,我们需要获取动态数组的长度。

要获取动态数组的长度,可以使用sizeof运算符。但是,sizeof运算符只能返回数组中单个元素的大小,而不能返回整个数组的大小。因此,我们需要解决以下两个问题:

1. 如何在获取数组长度之前保存数组大小?

解决这个问题的方法是,将数组的大小保存在一个变量中,以便在获取数组长度时使用。例如:

int* arr = new int[10];

int size = 10;

// 在这里使用arr

delete[] arr;

在这个示例中,我们将动态数组的大小保存在名为size的变量中。然后,在使用数组之后,我们必须使用delete[]操作符释放动态数组。

2. 如何通过变量获取动态数组的长度?

要通过变量获取动态数组的长度,我们可以使用以下公式:

length = sizeof(arr) / sizeof(arr[0]);

这个公式将arr的总大小除以arr[0]的大小,从而得到数组的长度。

下面是一个完整的示例,演示了如何通过变量获取动态数组的长度:

#include

using namespace std;

int main() {

 int size = 10;

 int* arr = new int[size];

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

  arr[i] = i + 1;

 }

 int length = sizeof(arr) / sizeof(arr[0]);

 cout << "The length of the array is " << length << endl;

 delete[] arr;

 return 0;

}

在这个示例中,我们创建了一个大小为10的整数数组。然后,我们将每个元素的值设置为其索引加1。最后,我们使用sizeof运算符计算数组的长度,并打印该长度。最后,我们释放了动态数组。

总结

获取C++中使用new创建的数组的长度并不困难。我们只需要将数组大小保存在变量中,并使用sizeof运算符来计算数组的长度。这种方法不仅简单,而且灵活,可以适用于许多不同的情况。

  
  

评论区

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