I need to do a large Project in C and C only, without external librairies (except for SDL). I started looking for ways to do some kind of class in C, what led me to that :
typedef void (*voidFunction)(void);
typedef struct{
    int id;                             
    voidFunction printId;
} Object;
Object *new_Object(int id){
    Object *newObject = malloc(sizeof(Object));
    newObject->id = id;
    void printId(){
        static Object *this = NULL;
        if(!this) this = newObject;
        printf("%d\n", this->id);
    };
    newObject->printId = printId;
    return newObject;
}
int main(){
    Object *object = new_Object(5);
    object->printId();
    object->id++;
    object->printId();
    return 0;
}
Output of main :
5
6
So this works, but does it seems reasonable ? Should I expect a backlash if I use this kind of architecture for a big project? Maybe I'm typing out of my allocated memory without realizing it?
 
     
     
     
    