У меня есть следующая головоломка для решения, и я не совсем уверен, как это сделать. В нем написано:Головоломка. Определите, какой из адресов принадлежит глобальным/локальным/переменным кучи.
Существует программа Ubuntu Linux C, которая выводит адреса переменных.
v1: 0xa156128
v2: 0xff97410c
v3: 0xf750e34b
v4: 0x804a0c0
Я знаю, что программа не использует разделяемую память, и хотя бы одна из этих переменных является переменной кучи. Какая из этих переменных равна global
/local
/heap
.
Это все доступная информация, и меня действительно интересуют любые идеи по решению этой головоломки.
Редактировать после прочтения комментариев:
Если я смотрю на время выполнения - ссылка хранения Организации (http://lambda.uta.edu/cse5317/notes/node33.html) там, кажется вероятным, что v2
и v3
являются локальным переменными, имеющими наибольшим адресом, v1
является переменной кучей, так как он находится между стеком и статическими данными, а v4
является глобальной переменной, которая не объявляется в стек во время выполнения, как местные, а скорее в разделе .data двоичного файла.
Возможно, я ошибаюсь, но у меня есть сильное чувство, что этот вопрос не имеет смысла. –
Возможно связано: http://stackoverflow.com/q/1966920/1679849 –
Спасибо за ссылку @squeamishossifrage. Я редактировал свой вопрос. – WillLur