gpt4 book ai didi

c++ - 如何确定 C++ 中字符串数组的大小?

转载 作者:IT老高 更新时间:2023-10-28 23:11:42 26 4
gpt4 key购买 nike

我试图简单地打印出数组中包含的值。

我有一个名为“结果”的字符串数组。我不知道它到底有多大,因为它是自动生成的。

根据我的阅读,您可以通过以下方式确定数组的大小:

sizeof(result)/sizeof(result[0])

这是正确的吗?因为对于我的程序,sizeof(result) = 16 和 sizeof(result[0]) = 16 所以代码会告诉我我的数组大小为 1。

但是这似乎不正确,因为如果我手动打印出这样的数组值:

std::cout << result[0] << "\n";
std::cout << result[1] << "\n";
std::cout << result[2] << "\n";
std::cout << result[3] << "\n";
etc...

...然后我看到了我正在寻找的结果值。该数组的长度/大小超过 100 个。

似乎确定数组的大小/长度应该非常简单......所以希望我只是在这里遗漏了一些东西。

我有点 C++ 新手,所以任何帮助将不胜感激。

最佳答案

您无法在 C++ 中动态确定数组的大小。您必须将大小作为参数传递。

附带说明一下,使用标准库容器(例如 vector )可以缓解这种情况。

在您的 sizeof 示例中,sizeof(result) 要求指针的大小(可能是 std::string)。这是因为当传递给函数时,实际的数组类型“衰减”为指向元素的指针类型(即使函数被声明为采用数组类型)。 sizeof(result[0]) 返回数组中第一个元素的大小,巧合的是,它也是 16 个字节。在您的平台上,指针似乎是 16 字节(128 位)。

请记住,sizeof总是在 C++ 的编译时评估,而不是在运行时。

关于c++ - 如何确定 C++ 中字符串数组的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2270726/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com