如何在C++中找到任何数组的大小

可能

我想找到任何数组类型的大小。我的代码是:

#include <iostream>

using namespace std;

template <typename t>
int some_function(t arr []){
    int s;
    s = sizeof(arr)/sizeof(t);
    return s;
}

int main(){
    int arr1 [] = {0,1,2,3,4,5,6,7};
    char arr2 [] = {'a','b','c','d','e'};
    int size;
    size = some_function(arr1);
    cout << "Size of arr1 : "<<size<<endl;
    size = some_function(arr2);
    cout << "Size of arr2 : "<<size<<endl;
    return 0;
}

当我在 cpp.sh 输出上运行此代码时:

Size of arr1 : 2
Size of arr2 : 8

当我在 CodeBlocks 上运行它时,Visual Studio 输出是:

Size of arr1 : 1
Size of arr2 : 4

我希望它打印数组的确切大小,即:

Size of arr1 : 8
Size of arr2 : 5

解决方案

我发现的帮助下解决RSPCheersandhth. -阿尔夫我正在按值传递数组,该值隐式转换为指针。阅读这篇文章rsp提供的答案后,我通过引用传递了数组。所以最终的代码是:

#include <iostream>

using namespace std;

template <typename t, int s>
int some_function(t (&arr)[s]){
    return s;
}

int main(){
    int arr1 [] = {0,1,2,3,4,5,6,7};
    char arr2 [] = {'a','b','c','d','e'};
    int size;
    size = some_function(arr1);
    cout << "Size of arr1 : "<<size<<endl;
    size = some_function(arr2);
    cout << "Size of arr2 : "<<size<<endl;
    return 0;
}

谢谢大家的帮助...

硕士

它被称为数组衰减为指针。当您按值传递数组时,它们会衰减为指针。因此,数组的大小只不过是取决于系统的指针的大小。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在级别结构表中找到任何内容?

来自分类Dev

我如何在go中找到数组的大小

来自分类Dev

数组到指针的转换。如何在C ++中找到数组的大小?

来自分类Dev

如何判断.selection.find是否在excel vba中找到任何东西

来自分类Dev

如何从数组中找到最大的游戏对象大小?

来自分类Dev

Perl,如何从 json 中找到哈希中的数组大小

来自分类Dev

如何在Solr中找到碎片的大小?

来自分类Dev

如何在C ++数组中找到连续的“占用”元素?

来自分类Dev

如何找到任何目录的索引节点?

来自分类Dev

如何找到任何目录的索引节点?

来自分类Dev

如何在php中找到数组差异

来自分类Dev

如何在V +中找到数组的长度

来自分类Dev

如何在C中找到argv []的长度

来自分类Dev

如何在C#中找到断点?

来自分类Dev

如何在C#中找到断点?

来自分类Dev

如何在C中找到分数的倒数?

来自分类Dev

如何从目标字符串中的源字符串中找到任何单词,并在PHP中从目标字符串中删除所有匹配的单词

来自分类Dev

C#如何在反向的字节数组中找到字节数组?

来自分类Dev

如何在TCP协议中找到“拥塞窗口大小”?

来自分类Dev

如何在对象数组中找到最长的数组?

来自分类Dev

如何在3维数组中找到最接近的数组

来自分类Dev

如何在数组中找到值存在的哈希数组?

来自分类Dev

如何在数组数组中找到频繁项

来自分类Dev

C ++从相同大小的两个不同整数数组中找到最小商

来自分类Dev

在C#中找到两个相等大小的数组的所有组合集

来自分类Dev

如何检查find命令是否未找到任何内容?

来自分类Dev

如何找到任何给定项目的Maven依赖项?

来自分类Dev

我如何找到任何东西的终端命令?

来自分类Dev

如何找到任何人的大老板

Related 相关文章

  1. 1

    如何在级别结构表中找到任何内容?

  2. 2

    我如何在go中找到数组的大小

  3. 3

    数组到指针的转换。如何在C ++中找到数组的大小?

  4. 4

    如何判断.selection.find是否在excel vba中找到任何东西

  5. 5

    如何从数组中找到最大的游戏对象大小?

  6. 6

    Perl,如何从 json 中找到哈希中的数组大小

  7. 7

    如何在Solr中找到碎片的大小?

  8. 8

    如何在C ++数组中找到连续的“占用”元素?

  9. 9

    如何找到任何目录的索引节点?

  10. 10

    如何找到任何目录的索引节点?

  11. 11

    如何在php中找到数组差异

  12. 12

    如何在V +中找到数组的长度

  13. 13

    如何在C中找到argv []的长度

  14. 14

    如何在C#中找到断点?

  15. 15

    如何在C#中找到断点?

  16. 16

    如何在C中找到分数的倒数?

  17. 17

    如何从目标字符串中的源字符串中找到任何单词,并在PHP中从目标字符串中删除所有匹配的单词

  18. 18

    C#如何在反向的字节数组中找到字节数组?

  19. 19

    如何在TCP协议中找到“拥塞窗口大小”?

  20. 20

    如何在对象数组中找到最长的数组?

  21. 21

    如何在3维数组中找到最接近的数组

  22. 22

    如何在数组中找到值存在的哈希数组?

  23. 23

    如何在数组数组中找到频繁项

  24. 24

    C ++从相同大小的两个不同整数数组中找到最小商

  25. 25

    在C#中找到两个相等大小的数组的所有组合集

  26. 26

    如何检查find命令是否未找到任何内容?

  27. 27

    如何找到任何给定项目的Maven依赖项?

  28. 28

    我如何找到任何东西的终端命令?

  29. 29

    如何找到任何人的大老板

热门标签

归档