У меня есть 2 структуры:
struct page
{
VA adress;
void* data;
size_t filled_bytes;
};
struct mmemory
{
int pages_count;
int page_size;
int pages_allocated;
int pages_filled;
struct page* table;
} *MMEM;
Тогда я сделал mallocs:
MMEM = malloc(sizeof(struct mmemory));
MMEM->table = malloc(sizeof(struct page*) * n);
//in for loop
struct page* new_page = malloc(sizeof(struct page));
new_page->data = malloc(MMEM->page_size);
MMEM->table[MMEM->pages_allocated++] = *new_page;
Я хочу получить указатель на определенный элемент MMEM->table[0].data
по индексу 0,например. Согласно этому вопросу я должен привести data
к char*
, а затем получить его по индексу. Я попробовал:
&MMEM->table[MMEM->pages_filled].data[0]
- Выражение должно быть указателем на полный тип объекта с использованием простой арифметики указателей
&(char*)(MMEM->table[MMEM->pages_filled].data[0])
- то же самое