FastNetMon

суббота, 15 мая 2010 г.

C, strlen

Что вернет
strlen("1\0")
?

1, так как \0 при этом не учитывается, так как является терминирующим символом. Но вот при выделении памяти про него стоит помнить. Индекс же \0 в строке будет = 1, то есть strlen("1\0").

2 комментария :

  1. strlen("1\0") == 1;
    sizeof("1\0") == 3;
    Так в чём трабла? ;-)

    ОтветитьУдалить
  2. Ну "" сам по себе подразумевает \0 в конце, так что во втором случае просто 1\0\0 что есть 3 байта :)

    ОтветитьУдалить

Примечание. Отправлять комментарии могут только участники этого блога.