Ich lerne über Linked Lists und wollte eine Strukturdarstellung eines Polynoms machen. Das Erstellen, Einfügen und Löschen der Knoten funktioniert gut, aber wenn ich versuche, Werte von einem Polynom in ein resultierendes zu kopieren, wird der Fehler Unhandled exception ... Access reading violation
ausgegeben. Warum verursacht diese Funktion dies?Unbehandelte Ausnahme beim Zuweisen neuer Werte?
struct Fraction {
int num;
int denom;
};
struct PolyTerm {
int exp;
struct Fraction* coe;
};
struct PolyList {
struct PolyTerm* polyTerm;
struct PolyList* next;
};
typedef struct Fraction Fraction;
typedef struct PolyTerm PolyTerm;
typedef struct PolyList PolyList;
PolyList* test(PolyList* list1, PolyList* list2) {
PolyList* result = (PolyList*)malloc(sizeof(PolyList));
result->polyTerm->exp = (list2)->polyTerm->coe;
result->polyTerm->coe = (list1)->polyTerm->coe;
return result;
}
Ich habe den Code über den Debugger ausgeführt und das ist die Zeile, die das Programm bricht.
result->polyTerm->exp = (list2)->polyTerm->coe;
Hier ist mein Stack-Trace
Unhandled exception at 0x00DC290A in PolyFun.exe: 0xC0000005: Access violation writing location 0xCDCDCDCD.
Zeigen Sie uns die Definition Ihrer 'struct'. –
Ich denke, dass Sie einige Einblicke in [magic number debug values] (https://en.wikipedia.org/wiki/Magic_number_ (Programmierung) #Magic_debug_values) eher erzählen können. – WhozCraig