如何在 C++ 中找到数组的确切大小? [复制]

Posted

技术标签:

【中文标题】如何在 C++ 中找到数组的确切大小? [复制]【英文标题】:How to find the exact size of an array in C++? [duplicate] 【发布时间】:2021-05-15 09:03:40 【问题描述】:

我声明了一个可以容纳10个参数的数组:

int a[10] = 2,3;

但我实际上有 2 个参数,当我使用 sizeof() 时:

int n = sizeof(a) / sizeof(int); 

它显示数组的长度是 10,但我想要的结果是:2 因为我只有 2 个参数。 我怎样才能做到这一点 ?谢谢。

【问题讨论】:

数组中的项目数量固定为 10,初始化器的数量无关紧要。其余项目用零初始化。 这是因为数组有固定的大小,在编译时设置为你指定的元素数量。那它的大小。不管你初始化多少元素,大小永远不会改变。如果您想要一个动态“数组”,请改用std::vector 【参考方案1】:

数组的实际长度是 10,而不是 2。当您提供的元素少于数组所容纳的元素时,其余的将用零填充。

如果您想根据初始化值的数量来调整数组的大小,只需将大小留在声明之外:int a[] = 2,3;

【讨论】:

以上是关于如何在 C++ 中找到数组的确切大小? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何获取数组的大小? [复制]

如果已知 void* 分配大小,如何将确切的内存大小传递给 free()

如何找到曲线(如 np.array)与 y==0 的确切交点?

如何在 WPF 中找到任意字形的确切大小?

如何找到二维数组的大小? [复制]

如何找到矩阵中最小值的确切数量? [复制]