Структура памяти стека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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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