/ / Wirf einen Zeiger von einem Zeichen in C - c

Wirf einen Zeiger von einem Zeichen in C - c

Wenn ich eine Funktion habe, die a zurückgibt (char) in c und ich habe eine (char* getSomething) Wie kann ich es anwenden? Es gibt mir einen Fehler, wenn ich versuche, es durchzuwerfen (char*) oder (char*)&

Beispiel: Wenn die Funktion ist:

char* getSomething;
getSomething = getSth(var);

getSth gibt ein Zeichen zurück

Antworten:

3 für die Antwort № 1

Sie können keinen Wert in einem Zeiger speichern. Ein Zeiger zeigt auf eine Speicheradresse, in der Daten gespeichert sind. Daher müssen Sie das zurückgegebene Zeichen zuerst an einem Speicherort speichern (eine Zeichenvariable oder eine malloc "ed-Region), auf die getSomething verweisen kann.

char *getSomething;
char something;

something = getSth(var);
getSomething = &something;

Oder Sie können direkt auf den Speicherort mit dem Zeiger zugreifen

char something;
char *getSomething = &something;

*getSomething = getSth(var);

Schließlich können Sie malloc verwenden, um einen Speicherbereich zurückzugeben, auf den verwiesen wird, und den zurückgegebenen Wert dann an diesem Speicherort zu speichern. Stellen Sie sicher, dass Sie diesen Speicher freigeben, bevor die Funktion beendet wird.

char *getSomething = malloc(sizeof(char));

*getSomething = getSth(var);

free(getSomething);

0 für die Antwort № 2
*getSomething = getSth(var);

Im Grunde heißt es: "Setze das Zeichen dahin, wo etwas ankommt ..."