I have this structure
typedef struct fpinfo
{
unsigned long chunk_offset;
unsigned long chunk_length;
unsigned char *fing_print;
}fpinfo;
typedef struct Hash_Entry {
struct Hash_Entry *next; /* Link entries within same bucket. */
unsigned namehash; /* hash value of key */
struct fpinfo fp;
} Hash_Entry;
and the following line of code to extract the 10 msb from the fing_print array
unsigned int h;
h = (he.fp.fing_print[0] << 2 | (he.fp.fing_print[1] & 0xC0) >> 6) & 0x3FF;
Here is how I initialized the he data member by reading contents from a file
while(fscanf(rd,"%ul,%ul,%X",&test_st.fp.chunk_offset,&test_st.fp.chunk_length,&test_st.fp.fing_print) !=EOF)
{
....
}
vc 2010 gives the error:
Unhandled exception at 0x013217f8 in htable.exe: 0xC0000005: Access violation reading location 0xcccccccc.
what is wrong with it?
The most likely reason is that
he.fp.fing_printhas not been initialized, so your process crashes when trying to access its elements. To verify, print out the value of the pointer, or examine it in the debugger.edit There are two problems with the
fscanf()code:%Xtogether with&test_st.fp.fing_printoverwrites the pointer;test_st.fp.fing_print.