找到静态数组和动态数组中元素数量的最快方法是什么?静态数组和动态数组中元素的数量
回答
没有办法找到动态创建的数组中的元素数量。对于非动态数组,您可以使用sizeof(array)/sizeof(type)
。然而,这看起来并没有那么有用:
void f(int a[]) {
// sizeof(a) will be the size of a pointer, probably 4
}
int main() {
int a[100];
// sizeof(a)/sizeof(int) will be 100
f(a);
}
这是因为当传递给函数时数组衰减为指针。因此,在这两种情况下,您可能需要记住数组的大小并将其作为单独的参数传递给函数。因此,在函数总结数组(例如)应该是这样的:
int sum(int a[], int n) {
int total = 0, i;
for (i = 0; i < n; i++) {
total += a[i];
}
return total;
}
通常会使用'sizeof(array)/ sizeof(array [0] )”。此外,可能会有非标准的,不可移植的方式来查找动态数组中的元素数量,但最好在创建时单独存储大小,并将其传递给需要知道大小的任何内容。 – 2010-04-05 09:42:17
@丹是的,没有想到那里打字 - 谢谢。 – 2010-04-05 09:46:21
@Georg请不要编辑我的答案的技术内容 - 我编写了我非常有意识地发布的代码。如果你认为它可以改进,发表评论或张贴你自己的答案。 – 2010-04-05 19:42:55
- 1. 动态和静态数组
- 2. 静态数组的动态数组
- 3. 动态和静态分配数组元素计算?
- 4. 从静态数组中删除元素
- 5. 静态或动态数组
- 6. RDS参数组 - 动态和静态
- 7. C中动态分配数组的数组元素数
- 8. 动态定义数组中的元素
- 9. 静态数组
- 10. 每个循环动态数组中的元素数量不好
- 11. 动态增加一个数组中元素的数量
- 12. 获取类静态数组的数量()
- 13. 动态数组的C静态指针
- 14. 为静态数组的动态数组分配内存
- 15. 检查静态数组的动态数组
- 16. 创建动态数组名称和添加动态元素
- 17. D中的向量和动态数组
- 18. C中的静态数组
- 19. 从静态数组
- 20. 静态数组,C++
- 21. 转换动态数组静态
- 22. 在动态指针数组和静态数组之间复制数据
- 23. 删除动态数组元素
- 24. 动态推送元素到数组jquery
- 25. 动态数组元素操作
- 26. 将元素动态添加到数组
- 27. C动态数组元素访问
- 28. 让行/动态二维数组元素
- 29. 动态添加元素到数组
- 30. C++初始化动态数组元素
可能重复:http://stackoverflow.com/questions/851716/count-repeated-elements-in-an-array-in -c – 2010-04-05 09:40:50
可能的重复:http://stackoverflow.com/questions/2347766/how-many-elements-are-full-in-ac-array – 2010-04-05 09:41:13