Funkcja zwracająca zamiast aktualnego elementu wskaźnik znajdujący się bezpiśrednio za ostatnim elem

0

Witam,
Mam zmodyfikować funkcję tak żeby zamiast zwracać aktualną liczbę elementów zwracała wskaźnik elementu znajdującego się za ostatnio wypełnionym elementem.

Funkcja do modyfikacji:

 
int fill_array(double ar[], const int limit)
{
    double temp;
    int i;
    for(i = 0; i < limit; i++)
    {
        cout << "Podaj wartość nr " << (i+1) << ": ";
        cin >> temp;
        if(!cin)
        {
            cin.clear();
            while(cin.get() != '\n')
                continue;
            cout << "Błędne dane, wprowadzanie danych przerwane.\n";
            break;
        }
        else if (temp < 0)
            break;
        ar[i] = temp;
    }
    
    return i;
}

Moja modyfikacja nie wiem czy poprawna : (Jeśli zła to proszę o wytłumaczenie co jest nie tak i co zwraca)

double *fill_array(double ar[], const int *limit)
{
    double temp;
    int i;
    for(i = 0; i < *limit; i++)
    {
        cout << "Podaj wartość nr " << (i+1) << ": ";
        cin >> temp;
        if(!cin)
        {
            cin.clear();
            while(cin.get() != '\n')
                continue;
            cout << "Błędne dane, wprowadzanie danych przerwane.\n";
            break;
        }
        else if (temp < 0)
            break;
        ar[i] = temp;
    }
    
    return ar + *limit;
}
 
1
return &ar[i];

Tylko tyle...

0

&ar[i] to to samo co napisałem czyli ar + *limit a przynajmniej tam mi się zdaje :)

0

Hmm to dlaczego wychodzi ten sam wynik? Jak wypisuje czyli: 2.12203e-314 dla ar+*size i dla &at[i].
No właśnie tak jak _13th_Dragon napisał to to samo tylko co ma temp i break do tego ? Temp dotyczy wartości tablicy.

Acha no dobra bo jak wpisze mniej elementów to ta moja wersja zrobi się niepoprawna :) Ok już kapuję czyli bardziej poprawne są &ar[i] i ar+i a moja jest poprawna jak nie podam liczb ujemnych. Dzięki za pomoc xD

0

"Leczenie doktora było poprawne jak pacjent nie był chory ;>"
_13th_Dragon dla mnie najważniejsze, że zrozumiałem :) Jeszcze raz dzięki za pomoc.

1 użytkowników online, w tym zalogowanych: 0, gości: 1