Это может быть тривиально, и я надеюсь, что кто-то сможет это объяснить. Почему StrLen дает мне большее количество, чем это реальный размер массива символов вместо 4: Вот мой код:strlen дает большее количество, чем размер массива
#include <stdio.h>
#include <string.h>
int main()
{
char szInput[4];
szInput [0] = '1';
szInput [1] = '1';
szInput [2] = '1';
szInput [3] = '1';
printf ("The sentence entered is %u characters long.\n",(unsigned)strlen(szInput));
return 0;
}
Я думал, что я должен получать 4 как выход, но я получаю 6.
Введенное предложение составляет 6 символов.
или используйте sizeof (szInput/sizeof (szInput [0])) – Simon
@Simon не сообщают OP, чтобы сделать это, держу пари, что тогда OP выложит следующий вопрос: _char * x = malloc (100); strcpy (x, someString); printf («длина строки:% u \ n», sizeof (x)); «Почему это дает неправильное значение?) _ И кроме того, в случае строки с нулевым завершением, которая дала бы другую значение, чем 'strlen()'. –