Я новичок в C, но пытаюсь обернуть голову, пытаясь сохранить произвольные объекты в массиве. Структуры, целые числа, символы, функции и т. Д. c. По сути, что-то, возможно, с использованием пустых указателей вдоль строк (псевдокод):
void *array[] = malloc(10000);
struct MyStruct m = malloc(sizeof(m));
int x = 10;
char c[] = "Look Here";
array[0] = &m;
array[1] = &x;
array[2] = &c;
По сути, я хочу, чтобы глобальный массив хранил произвольные объекты вроде базы данных, а затем каким-то образом извлекал их по индексу.
void *global_array[];
void
get_from_array(int index, void *ptr) {
*ptr = global_array[index];
}
int
main() {
global_array = malloc(10000);
struct MyStruct m = malloc(sizeof(m));
int x = 10;
char c[] = "Look Here";
global_array[0] = &m;
global_array[1] = &x;
global_array[2] = &c;
struct MyStruct m2;
get_from_array(0, &m2);
assert(m == m2);
}
Возможно ли что-нибудь подобное?