000
21.10.2003, 18:23 Uhr
Pablo
Supertux (Operator)
|
Ich hab folgendes:
C++: |
typedef struct { double value; char name[255]; struct MAP* next; } MAP;
|
Ich versuche eine arte map der STL in C zu machen. Ja, ich weiß ich weiß, bestimmt kommen Kommentare wie "mach es lieber in C++, usw... das ist schmutzig....:" Ich mache mit Absicht unter C, nur so zum Spaß, und ich mag diese schmutzige Sachen
Nun, ich habe folgendes:
C++: |
void addElement(MAP** map, double val, const char* name){ MAP* temp = (MAP*) malloc(sizeof(MAP)); MAP* p=*map;
....
while(p->next!=NULL) p=(MAP*)p->next; p->next=temp; // hier krieg ich ein Warning
}
|
Wieso kriege ich folgende Meldung?
Code: |
map2.c:27: warning: assignment from incompatible pointer type
|
Ich hab alles möglich gemacht, alle möglich castings gemacht, die ich kenne, nix bringt diese Warnung weg, wieso krieg ich sie denn überhaupt? Wenn ich zum Beispiel
C++: |
p=p->next; // nochmal die selbe Meldung ... p=(MAP*)p->next; // keine Meldung mehr
|
Wieso krieg ich immer eine Warnung Meldung? Sind denn next und p nicht Variablen vom selben Typ?
Es ist ja nicht schlimm, das Programm funktioniert sowieso, aber ich mag nicht, wenn ich Warnungen beim Compilieren kriege. -- A! Elbereth Gilthoniel! silivren penna míriel o menel aglar elenath, Gilthoniel, A! Elbereth! |