Angenommen, ich möchte eine Struktur definieren, die die Länge des Vektors und seine Werte wie folgt darstellt:
struct Vector{
double* x;
int n;
};
Angenommen, ich möchte einen Vektor y definieren und Speicher dafür zuweisen.
struct Vector *y = (struct Vector*)malloc(sizeof(struct Vector));
Meine Suche über das Internet zeigt, dass ich den Speicher für x separat zuweisen sollte.
y->x = (double*)malloc(10*sizeof(double));
Aber es scheint, dass ich den Speicher für y-> x zweimal zuordne, einen beim Zuweisen des Speichers für y und den anderen beim Zuweisen des Speichers für y-> x, und es scheint eine Verschwendung von Speicher zu sein. Es wird sehr geschätzt, wenn Sie mich wissen lassen, was der Compiler wirklich tut und wie Sie sowohl y als auch y-> x richtig initialisieren können.
Danke im Voraus.
malloc()in C ein. Ich werde nie verstehen, warum jeder das für nötig hält. :(