Как инициализировать статический указатель с malloc в C?

Я пытаюсь инициировать статическую переменную (внутри функции) с помощью malloc в C, но я получаю «инициализатор, а не постоянную ошибку». Я знаю, что не могу инициировать статические с неконстантами в C, но кто-нибудь может придумать решение? Мне нужно, чтобы код имел такой же эффект, как этот:

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

Есть ли хитрость / обходной путь?

РЕДАКТИРОВАТЬ: у меня есть функция, которая вызывается каждый раз, когда флаг поднимается высоко. В этой функции я создаю и запускаю новую тему. Я объявляю указатель на структуру и использую malloc для выделения памяти, а затем передаю этот указатель потоку. Затем функция возвращает управление. Когда я снова войду в функцию, поток, который я первоначально открыл, все еще будет работать, и я хочу иметь доступ к области памяти, которую я первоначально передал потоку. Вот почему мне нужен статический, чтобы я мог malloc при первом вызове, а затем использовать тот же адрес при последующих вызовах. Таким образом, я могу получить информацию из потока. Все это, чтобы избежать использования глобальных переменных.

Ответы на вопрос(5)

Ваш ответ на вопрос