\0 to nie null, no i inaczej jak wiesz gdzie kończy się ta tablica char bez tego znaku?
@thexDguy: Normalnie, jak w innych językach. Możesz sobie trzymać osobno ten rozmiar. To, że biblioteka standardowa tak działa, nie znaczy, że nie da się inaczej.
@VanQator: nie, ale musisz się liczyć z tym, że cała biblioteka standardowa C i większość zewnętrznych uznaje, że string to wskaźnik na tablicę, która kończy się znakiem '\0'. To design z lat 70 ubiegłego wieku, gdzie CPU było relatywnie tanie a pamięć cholernie droga. Null terminated stringi (nazywane też często C-string) są dobre, ponieważ zajmują mniej pamięci i sprawiają, że w zasadzie wystarczy jeden wskaźnik do pamięci, żeby móc pracować na
@scriptkitty: wtedy musisz rezerwować pamięć na długość tablicy, więc jest w kontekscie pytania opa, to rezerwowanie jeszcze większej ilości miejsca ¯\_(ツ)_/¯ cpp to cpp
@VanQator: a co do cpp: normalnie się używa std::string, null terminated stringi są używane tylko w starym kodzie (czyli na studiach to niestety większość) i w przypadku, gdy integrujesz się z bibliotekami napisanymi w C.
60zl za brak reklam na Instagramie - kogoś #!$%@? xD Ja rozumiem te wszystkie opłaty za serwisy streamingowe itd, ale #!$%@? 60zl za jakiegos Instagrama, żeby sobie bez reklam posty i story oglądać? #instagram #facebook
Serio inicjalizując tablicę char muszę przewidzieć miejsce na NULL?
Ale oczywiście printf("%s", x) zadziała losowo
@thexDguy: Normalnie, jak w innych językach. Możesz sobie trzymać osobno ten rozmiar.
To, że biblioteka standardowa tak działa, nie znaczy, że nie da się inaczej.
cpp to cpp