Saturday, 15 May 2010

C, strlen

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

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

2 comments:

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

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

    ReplyDelete

Note: only a member of this blog may post a comment.