Итак, скажем, я определил эти структуры:
typedef struct LRU {
int i;
} LRU;
typedef struct WS {
char i;
} WS;
и в своей основной я определил пустой указатель:
void* mStruct = NULL;
В зависимости от В случае, если мне нужно использовать одну из этих структур, так что
if(!strcmp(algorithm, "LRU")) {
mStruct = malloc(sizeof(LRU));
mStruct->i = 1;
}
else if(!strcmp(algorithm, "WS")) {
mStruct = malloc(sizeof(LRU));
}
else {
printf("Unknown replacment algorithm %s\n", algorithm);
return -1;
}
... // more code
free(mStruct);
Но эта строка кода дает мне ошибку: mStruct->i = 1;
Так как мне получить доступ к структуре, и если это не так идеальное решение моей проблемы, можете ли вы предложить правильный способ ее решения?
Обратите внимание, что я не хочу объявлять указатель на каждую структуру (например, LRU *lruPtr;
)