• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wskaźniki, funkcja, tablice

Cloud VPS
0 głosów
881 wizyt
pytanie zadane 25 października 2016 w C i C++ przez victordeleco2 Użytkownik (920 p.)
edycja 25 października 2016 przez victordeleco2

Witam mam problem z tymi zadaniami, mógłby chociaż nakreślić jak się za to zabrać? Najabrdziej dezorientuje mnie te kolejne elementy do tablicy. Z góry dzięki

 

zad.1 Napisz funkcję TworzT o parametrze a typu int. Jeżeli a nie jest dodatnie, to funkcja zwraca NULL. W przeciwnym przypadku funkcja zwraca wskaźnik do dynamicznie utworzonej tablicy liczb całkowitych, w której kolejnymi elementami będą liczby a, -a, a-1, -(a-1),..., 1, -1, 0.

zad. 2 Napisz funkcję, która tworzy tablicę liczb rzeczywistych i kopiuje do niej zawartość innej tablicy. Parametrami funkcji (typu void) są wskaźnik do tablicy źródłowej, ilość elementów oraz wskaźnik do tworzonej tablicy wynikowej.

 

edit: Napisałem taką funkcję do zad1 ale nie ma jak zwrócić NULL bo to funkcja typu void i kompilator wyświetla błedy.

void TworzT(int a)
{
    if(a>0)
    {
        int * tab = new int[a-1];
    }
    else
        return NULL;
}

 

1 odpowiedź

0 głosów
odpowiedź 25 października 2016 przez Avernis Nałogowiec (27,400 p.)
Zamień z typu void na tym int*
komentarz 25 października 2016 przez victordeleco2 Użytkownik (920 p.)

Zdążyłem zmienić ale co teraz w pętli?

int TworzT(int a)
{
    if(a>0)
    {
        int * tab = new int[a-1];
        for(int i = 0; i<a; i++, *tab++)
        {
            tab =  //co tutaj?? :/
        }
    }
    else
        return NULL;
}

 

komentarz 25 października 2016 przez Avernis Nałogowiec (27,400 p.)
Typ zwracany zmieniłeś na int a nie int*. Po drugie dajesz return tab; A po trzecie nie używaj NULL tylko nullptr
komentarz 25 października 2016 przez victordeleco2 Użytkownik (920 p.)

Czyli to ma wyglądać w ten sposób? Mam wrażenie jakby funkcja nie robiła tego co jest w pytaniu. Przy nullptr wyrzuca błąd.

int* TworzT(int a)
{
    if(a>0)
    {
        int * tab = new int[a-1];
        for(int i = 0; i<a; i++, *tab++)
        {
            return tab;
        }
    }
    else
        return NULL;
}

 

Podobne pytania

0 głosów
2 odpowiedzi 1,417 wizyt
0 głosów
4 odpowiedzi 1,948 wizyt
pytanie zadane 29 grudnia 2016 w C i C++ przez Sinnley Stary wyjadacz (12,810 p.)
0 głosów
1 odpowiedź 299 wizyt
pytanie zadane 1 grudnia 2022 w C i C++ przez Pysa6 Nowicjusz (220 p.)

93,487 zapytań

142,423 odpowiedzi

322,773 komentarzy

62,909 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...