07.10.2017, 14:07
Потому что это Windows. На Linux либо сервер просто крашнет, либо выплюнет ошибку о выходе за пределы массива.
И тут нет ничего удивительного. Объявляя массив, ты просто резервируешь определённый участок памяти под определённое имя переменной. Но от этого вся последующая память не становится недоступной. И это особенно хорошо видно как раз при работе с текстом.
Простой пример:
И тут нет ничего удивительного. Объявляя массив, ты просто резервируешь определённый участок памяти под определённое имя переменной. Но от этого вся последующая память не становится недоступной. И это особенно хорошо видно как раз при работе с текстом.
Простой пример:
PHP код:
static //Помещаем оба массива в сегмент данных
str1[] = "Привет",
str2[] = " Как дела?";
printf("\n1) |%s|", str1);
printf("\n2) |%s|", str2);
str1[sizeof(str1)-1] = '.';//Заменяем нуль-символ в массиве на точку
printf("|%s|", str1);//Вновь выводим содержимое первого массива, но на выходе получаем содержимое двух массивов

