Вывести адрес переменной в Си без `printf`

Георгий Соминский

Допустим у меня есть переменная, я записываю ее адрес в указатель. Как мне без printf вывести адрес указателя и адрес переменной которая хранится в указателе?

1 ответ

Георгий Соминский

В комментарий не втиснусь, так что в ответе... См. тут - http://ideone.com/jVhnOs

int main(int argc, const char * argv[])
{
    int a;
    printf("%p\n",&a);
    intptr_t p = (intptr_t)&a;
    char s[2*sizeof(p)];
    for(int i = 2*sizeof(p)-1; i >= 0; --i)
    {
       s[i] = "0123456789ABCDEF"[p & 0x0F];
        p >>= 4;
    }
    for(int i = 0; i < 2*sizeof(p); ++i)
    {
        putc(s[i],stdout);
    }
}

licensed under cc by-sa 3.0 with attribution.