最佳实践:如何在C中遍历数组?

时间:2019-01-26 19:11:09

标签: c

---编辑---数组先前已初始化为指针(* arr)。

对于我要解决的问题,我需要遍历可变大小的数组并开始使用此循环:

int arr[] = {3, 5, 10, -2, -1, -3}; // Just an example
int i = 0;

while(arr[i]) {

    //do something
    i++;

}

似乎,在遍历了我初始化的数组之后,即使我尝试使用的数组早已传递,代码也会找到一些存储在内存中的随机值并继续计数。

如何避免这种情况?

最诚挚的问候!

1 个答案:

答案 0 :(得分:2)

int *arr不是数组。

int不是应该用作索引的类型。请改用size_t

数组

int arr[50]; <-这个数组

您可以获得数组的大小除以元素的大小。

指针

int *ptr;仅引用int对象。您不能通过将指针的大小除以引用对象的大小来获得分配的内存的大小