Wie statischen Zeiger mit Malloc in C initialisieren?

Ich versuche, eine statische Variable (innerhalb einer Funktion) mit malloc in C zu initiieren, erhalte aber den Fehler "Initialisierer nicht konstant". Ich weiß, dass ich in C keine Statik mit Nichtkonstanten initiieren kann, aber kann sich jemand eine Lösung vorstellen? Ich brauche den Code, um den gleichen Effekt zu erzielen:

static int *p = (int *)malloc(sizeof(int));

Gibt es einen Trick / eine Problemumgehung?

EDIT: Ich habe eine Funktion, die jedes Mal aufgerufen wird, wenn ein Flag hoch geht. In dieser Funktion erstelle und beginne ich einen neuen Thread. Ich deklariere einen Zeiger auf eine Struktur und benutze malloc, um Speicher zuzuweisen, dann übergebe ich diesen Zeiger an den Thread. Dann gibt die Funktion die Kontrolle zurück. Wenn ich die Funktion erneut eingebe, wird der Thread, den ich ursprünglich geöffnet habe, weiterhin ausgeführt, und ich möchte auf den Speicherbereich zugreifen können, den ich ursprünglich an den Thread übergeben habe. Aus diesem Grund benötige ich eine Statik, damit ich beim ersten Aufruf malloc und bei nachfolgenden Aufrufen dieselbe Adresse verwenden kann. Auf diese Weise kann ich Informationen aus dem Thread erhalten. All dies, um die Verwendung globaler Variablen zu vermeiden.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage