решил поучить C, есть такая программа
#include <stdio.h>
#include <string.h>
int main(){
char s[5];
printf(«len of %s %d\n»,s,strlen(s));
return 0;
}
функция strlen считает символы пока не наткнется на '\0', так как массив символов я не инициализирую, то там мусор, и функция выйдет за его границы, вопрос, почему при каждом запуске программы, в качестве строки s выводится мусор, в качестве длины всегда 34(как выяснилось зависит от объявленной длины массива), а если объявить масив с >40 символов, не инициализируя строку длина = 0, и строка пуста, если меньше 40 символов, то в строке мусор. Ктонить может объяснить это?