Blog about system engineering, programming and networks
Saturday, 15 May 2010
C, strlen
Что вернет
strlen("1\0")
?
1, так как \0 при этом не учитывается, так как является терминирующим символом. Но вот при выделении памяти про него стоит помнить. Индекс же \0 в строке будет = 1, то есть strlen("1\0").
strlen("1\0") == 1;
ReplyDeletesizeof("1\0") == 3;
Так в чём трабла? ;-)
Ну "" сам по себе подразумевает \0 в конце, так что во втором случае просто 1\0\0 что есть 3 байта :)
ReplyDelete