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

Przekazywanie tablicy do funkcji(wskaźniki) - pewien problem

Object Storage Arubacloud
0 głosów
10,290 wizyt
pytanie zadane 28 lutego 2017 w C i C++ przez JamesBlant Początkujący (290 p.)
Witam

Mógłby mi ktoś wyjaśnić na czym polega różnica w: "Odbieraniu tablicy dynamicznej jako argument od funkcji poprzez wskaźnik", a  "Przekazywaniu tablicy dynamicznej do funkcji poprzez wskaźnik." ? W celu łatwiejszego zrozumienia sytuacji przedstawię Wam 2 zadania:

 

ZAD1: Zaprojektować i zaimplementować funkcję w języku C++ wypełniającą tablicę T o rozmiarze n kolejnymi liczbami naturalnymi zaczynając od wartości 10. Tablicę utworzyć wewnątrz funkcji i odebrać jako argument od funkcji poprzez wskaźnik.

ZAD2: Zaprojektować i zaimplementować funkcję w języku C++ zwracającą wartość maksymalną z elementów tablicy T o rozmiarze n. Tablicę należy przekazać do funkcji poprzez wskaźnik.

Z góry dziękuję i pozdrawiam.

2 odpowiedzi

+1 głos
odpowiedź 28 lutego 2017 przez tangarr Mędrzec (154,860 p.)

Zacznijmy od łatwiejszej opcji, czyli przekazania tablicy:

int max(int *tablica, int n) {
    int result = tablica[0];
    for (int i=1; i<n; i++) {
        if (tablica[i]>result)
            max=tablica[i];
    }
    return result;
}

Przykładowe użycie:

int tablica[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int n = sizeof(tablica)/sizeof(int);
int x = max(tablica, n);

A teraz odebranie tablicy:

void nowaTablica(int **tablica, int n) {
    *tablica = new int[n];
    for (int i=0; i<n; i++)
        (*tablica)[i]=i;
}

Oraz użycie:
 

int *tablica = nullptr;
nowaTablica(&tablica, 10);

 

komentarz 28 lutego 2017 przez JamesBlant Początkujący (290 p.)
Teraz wydaje mi się, że wiem mniej niż wiedziałem. Chyba muszę się z tym przespać i przemyśleć to na spokojnie. Wskaźniki to nie jest moja mocna strona. :/
komentarz 28 lutego 2017 przez tangarr Mędrzec (154,860 p.)

Spokojnie. Też na początku miałem problem ze wskaźnikami.
Na początek polecam Kurs C++ odc. 10: Wskaźniki. Dynamiczne alokowanie pamięci

 

0 głosów
odpowiedź 28 lutego 2017 przez criss Mędrzec (172,590 p.)
Odbierasz, czyli funkcja coś zwraca (wskaźnik), a ty go... odbierasz :D
Przekazujesz, czyli funkcja przyjmuje w argumencie wskaźnik a ty jej go podajesz.

Podobne pytania

0 głosów
3 odpowiedzi 1,997 wizyt
pytanie zadane 22 sierpnia 2016 w C i C++ przez Paściak Arek Nowicjusz (120 p.)
0 głosów
1 odpowiedź 454 wizyt
pytanie zadane 3 kwietnia 2019 w C i C++ przez mr.wo!tman Nowicjusz (120 p.)
0 głosów
0 odpowiedzi 873 wizyt
pytanie zadane 30 września 2018 w C i C++ przez Uwegi Początkujący (430 p.)

92,576 zapytań

141,426 odpowiedzi

319,650 komentarzy

61,961 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...