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

Nie rozumiem co ten kod robi.

+1 głos
326 wizyt
pytanie zadane 22 sierpnia 2015 w C i C++ przez Szahid Pasjonat (20,970 p.)

Przeglądając kurs c++ natrafiłem na taką informację- Przeanalizuj jednak dobrze powyższy przykład - zawiera on bardzo ciekawą obsługę dodawania elementów do tablicy.  Mój obecny stan wiedzy mówi mi że po rozpoczęciu kompilacjii programu liczba elementów w tablicy musi być ustalona no chyba że użyjemy 

int *wskaznik= tablica

tablica= new int [liczba elementów]

 

Funcja o której  przeczytałem wygląda tak:

int dopisz( int iLiczba, int tablica[], int ile )
{
    tablica[ ile ] = iLiczba;
    ile++;
    return ile; //zwraca ile jest elementów po dodaniu nowego
}

int main()
{
    int liczbaElementow = 0;
    int tablicaLiczb[ 10 ];
    wyswietl( tablicaLiczb, liczbaElementow );
    
    liczbaElementow = dopisz( 123, tablicaLiczb, liczbaElementow );
    wyswietl( tablicaLiczb, liczbaElementow );

Czy jest to koleiny sposób na dopisywanie elemntów do tablicy po kompilacji programu.

( Pytanie może być głupie ale nie wiem czy dobrze zrozumiałem bo kod mi niewiele mówi) 

3 odpowiedzi

+2 głosów
odpowiedź 22 sierpnia 2015 przez Patrycjerz Mędrzec (192,320 p.)

W powyższym kodzie chodzi o to, że masz już zdefiniowaną od początku wielkość tablicy i "dodajesz" do niej elementy dynamicznie. Ta funkcja to tylko uproszczenie dla początkujących. Jeśli znasz wskaźniki i operatory new i delete, to używaj właśnie ich.

+1 głos
odpowiedź 22 sierpnia 2015 przez krecik1334 Maniak (58,390 p.)
Polecam std::vector.
0 głosów
odpowiedź 22 sierpnia 2015 przez Szykem2 Nałogowiec (29,510 p.)
Nie wiem co autor ma na myśli mówiąc "ciekawe". Funkcja dopisz po prostu wprowadza wartość do tablicy(zadeklarowanej w linice 11) wartość na polu o indeksie ile(można podać dowolny więc to według mnie nie jest dobre rozwiązanie) i zwraca wartość o 1 większą. Z tym, że jak będziesz chciał dopisywać w pętli for ileś tam liczb to w końcu kompilator wywali segfaulta bo chciałeś zapisać wartość gdzieś poza tablicą

Podobne pytania

0 głosów
2 odpowiedzi 795 wizyt
pytanie zadane 23 sierpnia 2015 w C i C++ przez Slasheruus Nowicjusz (170 p.)
+3 głosów
1 odpowiedź 832 wizyt
+1 głos
2 odpowiedzi 1,534 wizyt

93,742 zapytań

142,678 odpowiedzi

323,297 komentarzy

63,328 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

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...