C: Zeiger auf array von Zeigern auf Strukturen (allocation/deallocation Fragen)

Ich habe immer wieder in C für etwas, aber ich habe Probleme erinnern, wie sehr dieses Speicher-management funktioniert. Ich möchte einen Zeiger auf ein array von Zeigern auf Strukturen.

Sagen, ich habe:

struct Test {
   int data;
};

Dann das array:

struct Test **array1;

Ist das richtig? Mein Problem ist das arbeiten mit diesem Ding. Also jeder Zeiger in dem array zeigt auf etwas, zugewiesen ist, getrennt. Aber ich denke, ich brauche dazu zuerst:

array1 = malloc(MAX * sizeof(struct Test *));

Ich habe Schwierigkeiten zu verstehen, die oben genannten. Brauche ich, um dies zu tun, und warum muss ich dies tun? Insbesondere, was bedeutet es, Speicher für Zeiger, wenn ich dabei bin, werden allokierung von Speicher für jede Sache, die der Zeiger zeigt?

Sagen, jetzt habe ich Zeiger auf ein array von Zeigern auf Strukturen. Ich möchte nun diese auf das gleiche array, dass ich zuvor erstellt haben.

struct Test **array2;

Brauche ich um zu reservieren Zimmer für Hinweise, wie ich oben, oder kann ich nur tun:

array2 = array1

InformationsquelleAutor der Frage DillPixel | 2013-03-13

Schreibe einen Kommentar