Как получить указатель на определенный элемент часов по его индексу - PullRequest
1 голос
/ 08 ноября 2019

У меня есть 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]) - то же самое

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...