Pointers to structs

Posted by Bobby on Stack Overflow See other posts from Stack Overflow or by Bobby
Published on 2010-03-30T14:50:08Z Indexed on 2010/03/30 14:53 UTC
Read the original article Hit count: 296

Filed under:

I have the following struct:

struct Datastore_T
{
    Partition_Datastores_T  cmtDatastores; // bytes 0 to 499
    Partition_Datastores_T  cdhDatastores; // bytes 500 to 999
    Partition_Datastores_T  gncDatastores; // bytes 1000 to 1499
    Partition_Datastores_T  inpDatastores; // bytes 1500 1999
    Partition_Datastores_T  outDatastores; // bytes 2000 to 2499
    Partition_Datastores_T  tmlDatastores; // bytes 2500 to 2999
    Partition_Datastores_T  sm_Datastores; // bytes 3000 to 3499
};

I want to set a char* to struct of this type like so:

struct Datastore_T datastores;

// Elided: datastores is initialized with data here

char* DatastoreStartAddr = (char*)&datastores;
memset(DatastoreStartAddr, 0, sizeof(Datastore_T));

The problem I have is that the value that DatastoreStartAddr points to always has a value of zero when it should point to the struct that has been initialized with data. Meaning if I change the values in the struct using the struct directly, the values pointed to by DatastoreStartAddr should also change b/c they are pointing to the same address. But this is not happening.

What am I doing wrong?

© Stack Overflow or respective owner

Related posts about c++