Zeigervariable benötigt Speicher zum Speichern des Werts, der eine Adresse des Speichers ist. Wenn Sie eine Zeigervariable definieren möchten Adresse eines int-Typ Variable zu speichern, können Sie den Zeiger wie folgt definieren:
int *mypointer = NULL;
int x = 10;
//store the address of variable x
mypointer = &x;
Wie wir wissen, ist die Zeigervariable nur jemand die Adresse zu speichern, die nur eine Zahl ist, . Somit hat diese Zeigervariable auch eine Adresse im Speicherraum. Wie speichert man die Adresse des Zeigers? Wir können das so machen:
int *mypointer = NULL;
int x = 10;
//the pointer store the x's address
mypointer = &x;
//define a pointer to store the pointer variable mypointer's address
int **newpointer = &mypointer;
Also, char ** ist ähnlich mit int **.
Der Typ size_t ist unsigned int oder anderer Typ. Anmerkung size_t ist ein vorzeichenloser Typ, unabhängig davon, ob size_t der Typ von int oder jemand anderes ist. Typ ssize_t ist Typ in C. Zur Vereinfachung unterzeichnet, size_t vielleicht wie folgt definieren:
typedef unsigned int size_t;
typedef int ssize_t;
Siehe Funktionsbeschreibung bei http://man7.org/linux/man-pages/man3/getline.3. html –
Sie sollten ** IMMER ** RTFM! – Stargateur
Sie sollten beachten, dass POSIX sagt, dass ['getline()'] (http://pubs.opengroup.org/onlinepubs/9699919799/functions/getline.html) ein 'ssize_t' (ein signierter Typ der gleichen Größe) zurückgibt als vorzeichenloser Typ 'size_t'). Wenn also der Header '' enthalten ist und die POSIX-Deklarationen aktiviert sind, wird der Code aufgrund des Unterschieds zwischen dem offiziellen Prototyp und dem in der Frage angegebenen nicht kompiliert. –