Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > как получить полный адрес по имени поля объекта ?


Автор: xma 12.1.2014, 03:22
как получить полный адрес по имени поля объекта класса ?

не пересчитывая размер расположенных до него полей от начала объекта  smile 

Автор: vinter 12.1.2014, 09:48
Код

#include <iostream>

struct A
{
    int a;
    char b;
    double c;
    virtual void foo()
    {

    }
};

int main()
{
    A b;
    std::cout << "Source object: " << std::hex << reinterpret_cast<ptrdiff_t>(&b) << std::endl;
    std::cout << "Member a: " << std::hex << reinterpret_cast<ptrdiff_t>(&b.a) << std::endl;
    std::cout << "Member b: " << std::hex << reinterpret_cast<ptrdiff_t>(&b.b) << std::endl;
    std::cout << "Member c: " << std::hex << reinterpret_cast<ptrdiff_t>(&b.c) << std::endl;
    return 0;
}

Автор: xma 12.1.2014, 17:38
а как на чистом C (там же тоже структуры есть) ? 

Автор: vinter 12.1.2014, 18:59
Здесь от С++ только вывод и кастинг.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)