Вышел ли я за пределы массива этим выражением arr[500]?
int main() {
char arr[1]= { 'h' } ;
printf("%d\n", arr[500]);
return 0;
}
Если не вышел, то значит массив расширился и стал равным 500 символам? Все неициализированные символы массива заполнились нулями.
А если вышел, то что после массива все ячейки приобретают значение 0 ?
То что ячейки в этом массиве заполнены нулями до 500 символа, кроме первого символа 'h' можно проверить оператором printf.
Как то нереально как это все ячейки после массива будут равняться нулям? Где тогда код храниться будет.