strlen
найдет длину путем поиска первого вхождения \0
.Поэтому, если вы хотите сбросить весь массив, вы должны изменить strlen(currentString)
на sizeof currentString
.Однако обратите внимание, что это не будет работать с указателями.
Если вы передадите массив функции, вы не сможете определить размер массива впоследствии, поэтому это не будет работать:
void foo(char * arr) {
for (int k = 0; k < sizeof arr; k++)
arr[k] = '\0';
}
Вместо этого вам нужно сделать так:
void foo(char * arr, size_t size) {
for (int k = 0; k < size; k++)
arr[k] = '\0';
}
Но, конечно, нет смысла писать для этого пользовательские функции, когда memset
доступен.