Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Warning: assignment from incompatible pointer type

Tags:

c

pointers

struct

I keep getting a lot of 'assignment from incompatible pointer type' warnings, and I haven't a clue as to why.

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

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

I get the warning any time I try to do anything to pageFrames[i].thePage.

The structs in question are:

//algo_structs.h
typedef struct{

int pageNum;

} myPage;

typedef struct myPage{

struct myPage* thePage;
int loaded;
int lastRef;

} myPageFrame;
like image 797
user3056261 Avatar asked Dec 03 '13 03:12

user3056261


1 Answers

myPage and struct myPage are different types. You could make them the same type by changing the struct definition to:

typedef struct myPage {
    int pageNum;
} myPage;

or you could just use myPage * instead of struct myPage *.

like image 188
R.. GitHub STOP HELPING ICE Avatar answered Oct 19 '22 05:10

R.. GitHub STOP HELPING ICE