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

Dlaczego w argumencie funkcji malloc do wyniku działania funkcji strlen dodaje się jeden?

Object Storage Arubacloud
0 głosów
294 wizyt
pytanie zadane 16 listopada 2017 w C i C++ przez antek782 Początkujący (490 p.)

Witam,

Mam napisaną taką funkcję, lecz niestety nie rozumiem dlaczego w argumencie funkcji malloc do wyniku działania funkcji strlen dodaje się jeden?

// Funkcja dodajaca nowa osobe do dziennika
int dodaj(char* nowe_imie_nazwisko, float* nowe_oceny)
{
    char* kopia;
    int i;

    if(indeks<MAX-1) // sprawdzanie, czy jest jeszcze miejsce w tablicy
    {
        kopia=malloc((strlen(nowe_imie_nazwisko)+1)*sizeof(char)); // rezerwacja pamieci, adres zarezerwowanego obszaru wpisywany do wskaznika 'kopia'
        strcpy(kopia, nowe_imie_nazwisko); // kopiowanie ciagu znakowego 'nowe_imie_nazwisko' pod adres w 'kopia'
        dane[indeks]=kopia; // element dane[indeks] wskazuje teraz na to samo co 'kopia'

        for(i=0; i<LICZBA_ZADAN; i++)
            oceny[indeks][i]=nowe_oceny[i]; // przepisanie ocen

        return indeks++; // zwraca numer studenta
    }
    else
        return -1; // nie ma juz miejsca w tablicy

}

Dziękuję

 

C

1 odpowiedź

+2 głosów
odpowiedź 16 listopada 2017 przez Tomasz90 Nałogowiec (25,140 p.)
Dodaje się jeden bo strlen oblicza długośc ciągu znaków bez uwzględniania znaku '\0' na końcu napisu.

Podobne pytania

–1 głos
1 odpowiedź 146 wizyt
pytanie zadane 27 kwietnia 2020 w PHP przez Farba Początkujący (440 p.)
0 głosów
1 odpowiedź 116 wizyt
pytanie zadane 18 stycznia 2019 w PHP przez Horson Nowicjusz (170 p.)
+1 głos
2 odpowiedzi 499 wizyt
pytanie zadane 4 marca 2018 w PHP przez dervil Gaduła (3,030 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 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!

...