繁体   English   中英

如何在C ++中获取动态分配的int数组的大小

[英]How to get size of a dynamic allocated array of ints in C++

如何在C ++中获取动态分配的int数组的大小?

示例:(/这将始终给出4作为4 * 8 = 32位,它是int的大小)

bool tabSum(int* t, int& p, int& np){
   cout<<"\n\n";
   cout<<sizeof(*t)<<endl;
}

您不能将数组作为参数传递时衰减到指针。 sizeof是一个编译sizeof算符。

我建议您改用std::vector

这不可能。

每个使用指针作为参数并期望其为数组的明智函数都将始终采用表示元素数量的第二个参数。

STL中使用的另一种方法是使用指针,该指针比数组中的最后一项经过一步,以此作为结束边界。 STL迭代器通过使用begin()和end()方法来抽象此方法。 这种方法还消除了对单独的数字数据类型(如size_t)的需求。

该规则的一个显着例外是期望以NULL结尾的字符串的字符串函数,尽管该特定方法容易出现安全性问题,并且首选使用std :: string类。

你不可以做这个。 正如其他用法所提到的,将长度保留在一个额外的变量中,或者编写您自己的malloc / realloc类,这可能会有所帮助,并为您跟踪这些类。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM