#include <stdio.h>
int main() {
char foo[6] = {"123456"};
printf("%s", foo); // 123456
}
Почему gcc правильно выводит данный массив? Ведь спецификатор %s означает вывести на экран все символы массива, пока не встретит \0. Но он явно не задан. Я ожидал увидеть просто поток случайных байтов из памяти до тех пор, пока не встречу \0 где-нибудь.