2016-03-03 3 views
-5

, если у меня есть программа C, которая начинается сКак узнать местоположение main() в памяти?

#include 
int main (void){ 
. 
. 
. 
} 

где приблизительно находится эта функция? (В шестнадцатеричном виде)

+1

Что? Вызовите что-то, что читает обратный адрес из стека, или всплывает, и переходит к нему. Зачем вам нужно знать? –

+0

Или запустите его с разборкой, с точкой останова на main() –

+5

Это на '& main'. –

ответ

1

Как это:

#include <stdio.h> 

int main() { 
    unsigned char *p = (unsigned char *) &main; 

    int i; 
    for (i = 0; i < sizeof &main; i++) 
    { 
     printf("%02x ", p[i]); 
    } 
    putchar('\n'); 

    return 0; 
} 

Выход на моей машине:

55 48 89 e5 48 83 ec 20 

Ссылка: https://stackoverflow.com/a/2741896/5399734

Смежные вопросы