Функции C ++, возвращающие массивы

Я новичок в C ++. Я привык к программированию на Java. Эта конкретная проблема вызывает у меня большие проблемы, потому что C ++ не работает как Java, когда имеет дело с массивами. В C ++ массивы - это просто указатели.

Но почему этот код:

#include 
#define SIZE 3
using namespace std;

void printArray(int*, int);
int * getArray();
int ctr = 0;

int main() {
  int * array = getArray();

  cout < endl < "Verifying 2" < endl;
  for (ctr = 0; ctr < SIZE; ctr++)
    cout < array[ctr] < endl;

  printArray(array, SIZE);
  return 0;
}

int * getArray() {
  int a[] = {1, 2, 3};
  cout < endl < "Verifying 1" < endl;
  for (ctr = 0; ctr < SIZE; ctr++)
    cout < a[ctr] < endl;
  return a;
}

void printArray(int array[], int sizer) {
  cout < endl < "Verifying 3" < endl;
  int ctr = 0;
  for (ctr = 0; ctr < sizer; ctr++) {
    cout < array[ctr] < endl;
  }
}

Ответы на вопрос(3)

Ваш ответ на вопрос