FAR data lost after reset or power off.

"[email protected] [rabbit-semi]" <[email protected]> 03 Aug 2015 20:22:27 -0700
Newsgroups gmane.comp.hardware.rabbit-semiconductor
Message-ID <[email protected]>
Hi,
I declared array as follow:

typedef struct{
    unsigned char name[NAME_LEN+1];
        unsigned int age;

}Member_t;


far  Member_t * PtrToFamilyMemberFile = 0;
far  char  * FamilyMemberFilePtr = 0;

void FamilyMember_Initalization(void)
{
    FamilyMemberFilePtr = (far char*) xalloc( sizeof(long) + 1L*MAX_MEMBERS*sizeof(Member_t) );
    PtrToFamilyMemberFile = (far Member_t*)(FamilyMemberFilePtr + 4);
    *((far long*)FamilyMemberFilePtr) = 1L*MAX_MEMBERS*sizeof(Member_t);    // Size of data section
     _f_memset( PtrToFamilyMemberFile, 0, 1L*MAX_MEMBERS*sizeof(Member_t) );    // Clear data
}

Whenever I wish to store to any value, I would do the following:

_f_strcpy(PtrToFamilyMemberFile[2].name,"Elizabeth");   
or 
PtrToFamilyMemberFile[2].age = 23;

Whenever I want to retrieve any data, I would do the following:

_f_strcpy(name,PtrToFamilyMemberFile[2].name);
sprintf(ans1,"\"member\": \"%s\" ", name);
printf("\n Name is %s", name);

printf("\nAge is %d", name);

Everything works fine but if I reset or remove power, all stored data are lost.  What am I doing wrong?