copying and repopulating a struct instance with pointers

Discussion in 'C' started by ashwinkumar18, Oct 10, 2011.

  1. ashwinkumar18

    ashwinkumar18 New Member

    Joined:
    Oct 10, 2011
    Messages:
    1
    Likes Received:
    0
    Trophy Points:
    0
    I am working on a tool in windows c++.
    I have a c++ structure which has the following format

    Code:
    typedef struct node {
          int open;
          int version;
          const unsigned long long * data;
          char* flags;
        }_node;
    It is a handle to a binary file. I am doing API interception and I get this pointer from an internal API call being made by the application.

    Also The data field in the structure above is a pointer to instances of two structures laid out contiguously. The two structures are as follows.

    Code:
     typedef struct header{
          unsigned int open;
          unsigned int version;
          unsigned long long int length;
        } _header;

    Code:
     typedef struct body{
          unsigned int v1, v2, v3, v4, v5, v6, v7, v8, v9, v10;
          unsigned long long int ll1, ll2;
        } _body;

    I am able to access and print the data field as follows.


    Code:
        _node* First=(node *)address;//Address is a pointer that i get from intercepting an application
        _header* nodeHeader=(_header*)First->data;
        char *bodyPtr=(char *)(nodeHeader+1);
        _body* nodeBody=(_body *)(bodyPtr);
        unsigned long long int offset=0;
    
        while(!(nodeBody->v1 & 1) && offset< nodeHeader->length)
        {
         nodeBody=(_body*)(bodyPtr+offset);
         offset=nodeBody->v2+nodeBody->v3;
        }
    
    I want to write the struct node instance into a text file and be able to read it back into a struct instance later. What is the best way to do it? I want an answer in c++


    I want a c++ code because the code I am working on is in c++. The code i posted here has typedef because people who wrote the structure has written it in C.
     

Share This Page

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice