Хотелось бы знать, почему это происходит. Я создаю 5-элементный массив целых чисел - каждый элемент занимает 4 байта в памяти. Почему, когда я печатаю адрес myArray [-1], я также получаю действительный адрес?Память, используемая массивами
#include <stdio.h>
#include <stdlib.h>
int main()
{
int myArray[] = {1, 2, 3, 4, 5};
printf("0x%p\n0x%p\n0x%p\n", &myArray[-1], &myArray[0], &myArray[1]);
return 0;
}
Выход: 0x0028FEF8 0x0028FEFC 0x0028FF00
Я голосую, чтобы закрыть этот вопрос как не по теме, потому что «объясните UB», –