• 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?

Cloud VPS
0 głosów
497 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ź 283 wizyt
pytanie zadane 27 kwietnia 2020 w PHP przez Farba Początkujący (440 p.)
0 głosów
1 odpowiedź 166 wizyt
pytanie zadane 18 stycznia 2019 w PHP przez Horson Nowicjusz (170 p.)
+1 głos
2 odpowiedzi 800 wizyt
pytanie zadane 4 marca 2018 w PHP przez dervil Gaduła (3,030 p.)

93,467 zapytań

142,460 odpowiedzi

322,734 komentarzy

62,847 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
...