In an effort to keep some level of OO in this C version of a C++ program without going overboard with vtable macros and such, I have created 3 kinds of structs which each store information relating to the 3 types of Objects that I used to have in C. Now, to store them in the same array so that they may maintain order and readability, I want to stick them into an array of void pointers. Now the my question is this. Am I able to reference the attributes of the structs pointed to by the void pointers without first casting them back to their original type? If not, is there any other way that I could find out what type of struct the void pointer actually points to? Any help would be appreciated.