Имеется такая функция
void func(){
int a = 999999;
int b = 999988;
int c = 999977;
int d = 999966;
int arr[100];
int *y = &arr[0];
for (int i=0; i<100; i++){
arr[i] = 111111;
}
for (int i=0; i<115; i++){
cout.width(10);
cout<<*(y+i)<<" "<<(y+i)<<endl;
}
}
Она выводит массив и сделующие за ним ячейки памяти, элементы массива идут друг за другом, это естественно. После них 2 ячейки, то есть 8 байт остаются пустыми и идут следующие 4 переменные (a,b,c,d). Если удалить одну перепенную и оставить (a,b,c), то это расстояние увеличиваеся до 3 ячеек, то есть 12 байт, а если оставить одну переменную (a), то это расстояние увеличится до 5 ячеек и соотственно 40 байт. У меня вопрос, почему так распределяется память? От чего это зависит? У меня операционка Windows 10 (64bit). Предполагаяю, что 8 байт уходят на указатель, но куда уходят остальные непонятно.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости