@Macron robisz okropny błąd i jeszcze przez to zwodzisz janemba... Zrobienie czegoś takiego:
int* Funkcja()
{
int tablica [244];
return tablica;
}
to najkrótsza droga do segfault'a... po wyjściu z funkcji tablica już NIE ISTNIEJE
Ja proponuję to tak (odnoszę się do oryginalnego pytania):
int MyFunction(int *pArray, const unsigned int uiElementsCount)
{
int i;
//jeżeli do funkcji zamiast adresu tablicy został przekazany null
//lub ilość elementów jest mniejsza od 1 to zakończ funkcję
if(pArray == NULL || uiElementsCount < 1) return;
for(i = 0; i < uiElementsCount; i++)
pArray[i] = 0;
for(i = 0; i < uiElementsCount; i++)
{
cin >> pArray[i];
//zauważ, że sprawdzenie czy element się 3-krotnie powtarza odbywa się dopiero,
//gdy są już conajmniej 3 elementy w tablicy, żeby nie wyjść poza jej zakres np. dla i = 1 (i - 2 = -1)!!
if((i > 1) && (pArray[i] == pArray[i-1]) && (pArray[i-1] == pArray[i-2])) break;
}
return i; //zwrócenie ilości pobranych liczb od użytkownika
}
W main:
const int n = 50;
int tablica[n], ile;
ile = MyFunction(tablica, n);
for(int i = 0; i < ile; i++)
cout << tablica[i] << endl;