如何通过其索引获取指向特定时钟元素的指针

时间:2019-11-08 14:56:23

标签: c pointers

我有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;

然后我制作了malloc:

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;

例如,我想通过索引0获得指向MMEM->table[0].data某些元素的指针。 根据{{​​3}}问题,我应该将data强制转换为char*,然后再逐个索引获取它。 我尝试过:

&MMEM->table[MMEM->pages_filled].data[0]-使用简单的指针算法,表达式必须是指向完整对象类型的指针

&(char*)(MMEM->table[MMEM->pages_filled].data[0])-相同

0 个答案:

没有答案