Ich habe einige Probleme mit einer Hauptdatei.Ich habe eine Matrix von Strukturen (theoretisch) und ich möchte alle meine "p" -Parameter in allen Strukturen ändern. Dies ist die Hauptdatei:C Fehler beim Dereferenzieren des Zeigers auf unvollständigen Typ
int main(int argc, char** argv) {
int i, j;
struct PQ *queue;
queue = createQ(5);
for (i = 0; i <= 5; i++) {
for (j = 0; j = 20; j++);
queue->mem[i][j].p = 1;
}
for (i = 0; i <= 5; i++) {
puts("\n");
for (j = 0; j <= 20; j++);
printf("%d ",queue ->mem[i][j].p);
}
return (EXIT_SUCCESS);
}
Und das ist eine andere Datei, die Strukturen Definiton und erzeugen Funktion enthält:
typedef struct newLine{
unsigned p;
} newLine;
struct PQ{
struct newLine ** mem;
};
struct PQ *createQ(unsigned min){
int i=0;
struct PQ *newQ = malloc(sizeof(PQ));
newQ->mem = malloc(min*sizeof(newLine *));
for(i=0;i<=min;i++){
newQ->mem[i]=calloc(20,sizeof(newLine));
}
return newQ;
}
Irgendwelche Ideen?
Könnten Sie bitte geben ein [MCVE] (https://stackoverflow.com/help/mcve) zusammen mit der Compiler/Linker-Ausgabe, die th anzeigt Die Fehlermeldung, die Sie im Titel Ihrer Frage gepostet haben? Es wird uns erheblich helfen. Vielen Dank. – DevNull
main.c: In der Funktion 'main': main.c: 13: 14: Fehler: Dereferenzierung Zeiger auf unvollständigen Typ Warteschlange-> mem [i] [j] -> p = 1; ^ main.c: 19: 28: Fehler: Dereferenzierung Zeiger auf unvollständigen Typ printf ("% d", Warteschlange -> mem [i] [j] -> p); –
'queue-> mem [i] [j] -> p' ->' queue-> mem [i] [j] .p' auch 'für (int i = 0; i = min; i ++) {' : 'i = min' ist falsch. – BLUEPIXY