Używam C przez jakiś czas i mam ten banalny problem, o który chcę zapytać.Zawiera znak null podczas przydzielania przy użyciu malloc
Powiedz, że chcę utworzyć tablicę znaków, która przechowuje do 1000 znaków. Teraz, gdy używam malloc dla tego samego, to czy mogę określić rozmiar tablicy jako 1001 znaków [1000 znaków + null] lub tylko 1000?
Powiedzmy, że natknąłem się na ten problem, więc jak mógłbym znaleźć odpowiedź na to rozwiązanie na własną rękę, być może za pomocą niektórych programów testowych. Rozumiem, że rozmiar łańcucha znaków jest obliczany bez znaku pustego, ale kiedy przydzielam pamięć dla tego samego, czy biorę pod uwagę także znak zerowy?
Nadal musisz wziąć pod uwagę, że terminator zerowy potrzebuje dodatkowego bajtu, więc jeśli twój ciąg ma mieć długość tysiąca znaków, użycie 'calloc()' nie zmienia faktu, że potrzebujesz tysiąc i jeden bajt do przechowywania ciągu znaków. –