gpt4 book ai didi

c - 'sizeof' 对不完整类型列表结构 C 的无效应用

转载 作者:行者123 更新时间:2023-12-04 02:52:58 24 4
gpt4 key购买 nike

我正在尝试实现一种处理页面错误的替换算法。所以我正在尝试使用 malloc 创建一个循环链表,但我收到以下错误:“sizeof' 对不完整类型的无效应用pageInMemory'。以下是代码:

 typedef  struct {

int use;
int reference;
int free;
struct pageInMemory* next;
} pageInMemory;


int main()
{

int i;
struct pageInMemory* start, *nn, *temp, *hand;
start = NULL;

for(i=0; i< pNum; i++)
{
nn = (struct pageInMemory *)malloc(sizeof(struct pageInMemory));
nn->use = 0;
nn->free = 1;

if(start==NULL)
{
nn->next = nn;
start =nn;
}

else
{ // sfhsdifhsdifj sdijfjsd
temp = start;
while(temp->next != start)
{
temp = temp->next;
}

temp->next = nn;
nn->next = start;
start = nn;

}

}



hand = start;
temp = start;

while(temp->next != start->next)
{
printf("%d\n", temp->use); //hi
}


return 0;// bye
}

所以我不应该这样使用 malloc 吗?

最佳答案

改变你的结构定义为

struct pageInMemory{

int use;
int reference;
int free;
struct pageInMemory* next;
};

让您的代码正常工作。仅供您引用 do not typecast void* coming from malloc .

关于c - 'sizeof' 对不完整类型列表结构 C 的无效应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17211345/

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