gpt4 book ai didi

c - 这个分配有什么问题?

转载 作者:太空宇宙 更新时间:2023-11-04 06:35:10 25 4
gpt4 key购买 nike

这是我声明的结构:-

struct page_table_entry {
struct addrspace* as;
vaddr_t va;
//page_state_t state;
int timestamp;
};

现在我想为这个数组动态分配内存。我的实现在这里:-

struct page_table_entry **coremap = (struct page_table_entry**)
kmalloc(npages*sizeof(struct page_table_entry*));
int i;
for(i=0;i<npages;i++)
{
coremap[i] = (struct page_table_entry*)kmalloc(sizeof(struct page_table_entry));
coremap[i].va=(firstAddress+(i*PAGE_SIZE));
}

它在我访问变量 va 的最后一行给我一个错误。错误是:-

error: request for member `va' in something not a structure or union

最佳答案

您有一个指向结构的指针数组,而不是一个结构数组。

行内 coremap[i] = (struct page_table_entry*)kmalloc(sizeof(struct page_table_entry));您将内存分配分配给 page_table_entry*,因此 coremap[i] 就是这个指针。

您通过

访问实际结构
coremap[i]->va=(firstAddress+(i*PAGE_SIZE));

关于c - 这个分配有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15825079/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com