При вызове функции она не возвращает последний элемент массива "555". Проблема скорее всего в итерации. Но не могу понять , как исправить

#include <iostream>
using namespace std;

void foo(int arr[]) {

  for (int i = 0; i < sizeof((int)(arr) / sizeof(int)); i++)
  {
    cout << arr[i] << endl;
  }
}

int main() {
  setlocale(LC_ALL, "rus");

  int arr[]{14,14,15,52,555};

  foo(arr);
}

Ответы (1 шт):

Автор решения: Igor
void foo(int arr[], int length) {
  //cout << "in foo " << sizeof(arr) << endl;
  for (int i = 0; i < length; i++)
  {
    cout << "in foo " << i << " " << arr[i] << endl;
  }
}

int main()
{
    int arr[] {14, 14, 15, 52, 555};
    cout << "in main " << sizeof(arr) << endl;
    foo(arr, sizeof(arr) / sizeof(int));
    return 0;
}
→ Ссылка