How can I have a struct declaration for each function, like the following:
#include <stdio.h>
#include <stdlib.h>
struct additionalVariables;
struct container {
int am;
int bm;
struct additionVariables *variables;
};
void foo(void) {
struct container myContainer;
struct additionalVariables {
int x;
int y;
};
myContainer.variables = malloc(sizeof(struct additionVariables));
myContainer.variables->x = 5;
myContainer.variables->y = 6;
free(myContainer.variables);
}
void bar(void) {
struct container myContainer;
struct additionalVariables {
char a;
int b;
int x;
};
myContainer.variables = malloc(sizeof(struct additionVariables));
myContainer.variables->a = 5;
myContainer.variables->b = 6;
myContainer.variables->x = 7;
free(myContainer.variables);
}
int main(void) {
foo();
bar();
return 0;
}
I would prefer not to have to cast. Different additionVariables structs must be able to have the same names, for example both foo and bar need a property for x.