Тема: strnlen та вказівник на char
Якщо записати ось так:
char src[] = "1234567890";
printf("%zu\n", strnlen(src, sizeof(src)));
то отримаємо правильну довжину рядка.
А якщо ось так:
char* src = "1234567890";
printf("%zu\n", strnlen(src, sizeof(src)));
то довжина рядка чомусь обмежується 8.
Тобто до 8 включно правильно визначається,
а далі лише 8.
Чому так?
Ця ж функція наче спеціально зроблена,
щоб контролювати наявність '\0' в кінці рядка.