Структура памяти стекаLinux

Anonymous
Структура памяти стека

Сообщение Anonymous »

Я понимаю, что стек перемещается от верхнего адреса памяти к нижнему адресу памяти. Чтобы определить размер структуры без использования каких-либо вызовов библиотеки, которые я использовал ниже,

Код: Выделить всё

#include 

typedef struct node{
int a;
char b;
int c;
} Node;

int main(){
Node obj1;
Node obj2;
printf("Size of struct is %ld\n",(char*)&obj1 - (char*)&obj2);
return 0;
}

Результат равен -12, что делает результат -ve.
Я также попробовал отключить оптимизацию компилятора.
Ожидание разница между obj1 и obj будет равна +ve, поскольку сначала в стеке будет размещен объект obj1 с более высоким адресом, а затем — obj2.

Подробнее здесь: https://stackoverflow.com/questions/792 ... ory-layout

Вернуться в «Linux»