c - 如何找到数组中元素的数量?

标签 c arrays sizeof

我有一个int 数组,我需要找出其中元素的数量。我知道它与 sizeof 有关,但我不确定如何准确使用它。

最佳答案

如果您的数组在范围内,您可以使用 sizeof 来确定它的大小(以字节为单位)并使用除法来计算元素的数量:

#define NUM_OF_ELEMS 10
int arr[NUM_OF_ELEMS];
size_t NumberOfElements = sizeof(arr)/sizeof(arr[0]);

如果您接收一个数组作为函数参数或在堆中分配一个数组,则您无法使用 sizeof 确定其大小。您必须以某种方式存储/传递尺寸信息才能使用它:

void DoSomethingWithArray(int* arr, int NumOfElems)
{
    for(int i = 0; i < NumOfElems; ++i) {
        arr[i] = /*...*/
    }
}

关于c - 如何找到数组中元素的数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10290610/

相关文章:

javascript - JS 将值推送到对象数组

C : Why the size of my pizza is not 10 bytes?

c++ - 计算字符指针数组的大小

c - 递归控制流程

c - 这种在 64 位系统中获取字符串一部分的方法合法吗?

c - 树莓派和OpenCV的C语言库

objective-c - 基于浏览器的 C 和 Objective-C 教程

c++ - 重载运算符<<用于查找二维数组的总和

arrays - Perl 中数组的问题

c++ - C memcmp 第三个参数类型