我有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])
-相同