因此,问题出在我的项目上,我几乎必须为我的操作系统类创建一个反向表页面。电讯局长写下了一些基本的代码以开始使用。他说,要创建表,表应该是一个
*包括元数据,例如页面大小和翻译的页面数
* table(可以是二维数组或结构的一维数组),因此代码如下:

#include <stdio.h>
#include <stdlib.h>
#define N 500
struct invTablePage{
    invTablePage page[N];

};

struct table
{
    int numOfPages;
    int pageSize;
    int array[struct invTablePage];
};


void initInverted(struct invTablePage **invTable, int memSize, int frameSize);

int translate(struct invTablePage *invTable, int pid, int page, int offset);

void releaseInverted(struct invTablePage **invTable);


但是,当我编译代码时,它给了我这个

error:  expected expression before ‘struct’
error: array type has incomplete element type
  struct invTablePage page[N];


我试过使用的大小,但这不起作用。显然可以完成int array [struct invTablePage],但是如果尝试获取结构的大小更有意义,我什至不知道该如何工作。至于数组类型有不完整的元素错误,如果我已经声明了我的invTablePage类型的结构,那么我不确定那是什么,所以它应该可以工作。任何帮助,将不胜感激

最佳答案

struct invTablePage {
    invTablePage页面[N];

};

您不能定义这样的结构。结构可以具有指向其自身类型的指针,但不能具有其自身类型的成员。

09-30 17:46