相关疑难解决方法(0)

从成员中查找struct的基址的标准方法

struct Data {
    int a;
    std::string b;
    float c;
};

std::string* allocateDataAndGetString() {
    Data* dataPtr(someAllocator.allocate<Data>());
    return &dataPtr.b;
}

Data* getBaseDataPtrFromString(std::string* mStringMember) {
    // ???
}

int main() {
    std::string* stringPtr(allocateDataAndGetString());
    Data* dataPtr(getBaseDataPtrFromString
}
Run Code Online (Sandbox Code Playgroud)

Data在堆上分配了一个实例,并指向了它的std::string b;成员.如何Data以标准方式获取字符串所属实例的基址,并考虑偏移和填充?

我试过减sizeof(int)std::offsetof(Data, std::string)std::string*指针,但我无法得到它的工作.

c++ struct offsetof memory-address c++11

2
推荐指数
1
解决办法
1477
查看次数

标签 统计

c++ ×1

c++11 ×1

memory-address ×1

offsetof ×1

struct ×1