Ich verstehe nicht, wie Sie dynamisch Speicher für ein Array von Strukturen innerhalb einer anderen Struktur zuweisen. Wie in, hier ist mein Problem ... Ich habe eine Projekt.c-Datei, die die wichtigsten enthält, habe ich eine andere polynomial.c-Datei, die alle Poly-Operationen behandelt wie das Hinzufügen von Begriffen, ein Polynom mit einer Zahl ect multiplizieren.Dynamic-Speicher-Zuweisung eines Arrays innerhalb einer Struktur,
Dies ist Header-Datei für polynomials.h
typedef struct term{
int coeff;
int expo;
} TERM;
typedef struct polynomial {
int size;
// This needs to be changed to calloc.. not sure how within a struct
TERM terms[20];
} POLYNOMIAL;
...
...
ich dies auch in meiner project.c-Datei, die dynamisch Speicher für die Poly-Array zuweist.
POLYNOMIAL *polynomials = (POLYNOMIAL *)malloc(sizeof(POLYNOMIAL) * 8);
// 8 being the max number of polynomials I wan to store
Ich habe zwei Fragen hier, wann und wie sollte ich dynamisch den Speicher für die Begriffe Array zuweisen? Ich dachte mir, vielleicht einen Zeiger auf einen Zeiger zu machen, der den Calloc-Speicher für ein leeres Array von Termen hält. Dies würde am Programmstart erfolgen, aber nach der Polynom-Zuweisung (denke ich).
Eine andere Frage, jetzt, wenn ich gehe, um den Speicher zu befreien, sollte dies am Ende des Programms getan werden, bevor es beendet und die Reihenfolge, in der ich frei sein sollte unten sein, richtig? Mit anderen Worten, befreie das Terme Array und dann das Polynom Array.
An dieser Stelle wären Hinweise oder Hinweise hilfreich. Vielen Dank!
Das qualifiziert, seine Hausaufgaben für ihn zu machen. Wäre es nicht besser, es nicht zu lösen, sondern ihn zu einer Lösung zu führen, ohne es für ihn zu tun? –
Wann und wo sollen die * Terms Calloc aufgerufen werden? – Hall9
Die Hauptsache ist, dass die Polynome, die Sie verwenden, auf gültige Zeiger zeigen, andernfalls können Sie ihre Mitglieder nicht zuweisen. – Jack