gpt4 book ai didi

c++ - C++中数组的长度

转载 作者:太空狗 更新时间:2023-10-29 23:26:05 24 4
gpt4 key购买 nike

我在 C++ 中读到获取数组的长度,你这样做:

int arr[17];
int arrSize = sizeof(arr) / sizeof(int);

我试着对一个字符串做同样的事情:我在哪里

string * arr;
arr = new (nothrow) string [213561];

然后我做

arr[k] = "stuff";

我循环遍历每个索引并在其中放入“东西”。

现在我想要数组的大小,它应该是 213561,正确的方法是什么,为什么在 C++ 中这么复杂?

最佳答案

你试图做的事情是行不通的,因为 sizeof 在编译时作用于类型(指针类型永远不会保持它们可能指向的数组的大小)。

在你的例子中,计算 sizeof(arr) 返回指针在内存中占用的大小,而不是

size of the array * size of a std::string

我建议你使用这两个选项之一

  • 要么使用固定大小的数组(sizeof 有效)
  • 或 vector (myVector.size() 返回你需要的)

...除非你有充分的理由不这样做。

关于c++ - C++中数组的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1961376/

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