如何在 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()