In the code below, can someone explain the char ** line?
I think it assigns the value 0 to an astructure[foo] array element. I just don't understand why char in (char **) is used. It is causing gcc to barf up a "dereferencing type-punned pointer will break strict aliasing rules" warning. I could type-cast it again to void, however I dont know why it was casted to char to begin with. The segment of code is part of a huge project I am working on, that is quite established.
struct mystruct *astructure;
(*(char **)&astructure)[foo] =0;