警告:从不兼容的指针类型分配

use*_*261 4 c struct pointers

我不断收到很多"来自不兼容指针类型的警告"的警告,而且我还没有找到原因.

myPageFrame pageFrames[numOfFrames];
myPage pages[numOfPages];

//in a for loop
pageFrames[i].thePage = (myState == HOT ? (&pages[i]) : NULL);  // one of the offenders
Run Code Online (Sandbox Code Playgroud)

每当我尝试做任何事情时,我都会收到警告pageFrames[i].thePage.

有问题的结构是:

//algo_structs.h
typedef struct{

int pageNum;

} myPage;

typedef struct myPage{

struct myPage* thePage;
int loaded;
int lastRef;

} myPageFrame;
Run Code Online (Sandbox Code Playgroud)

R..*_*R.. 9

myPage并且struct myPage是不同的类型.您可以通过将struct定义更改为以下内容使它们成为相同的类型:

typedef struct myPage {
    int pageNum;
} myPage;
Run Code Online (Sandbox Code Playgroud)

或者你可以用myPage *而不是struct myPage *.