У меня следующая проблема:
Прежде всего, у меня есть структура:
struct Filehandler
{
const int id = 1;
};
Затем у меня есть два метода - один для создания новой структуры Filehandler, а другой для удаления структуры . Поскольку весь код является частью подключаемого модуля Webassembly для проекта Rust, я должен использовать указатели.
Итак, это мой метод выделения структуры:
uintptr_t newhandler() {
struct Filehandler* filehandler = (struct Filehandler*) malloc(sizeof(struct Filehandler));
uintptr_t *ptr = (uintptr_t *)&filehandler;
uintptr_t temp = (uintptr_t)ptr;
return temp;
}
Я как-то это знаю выглядит запутанным, но мне нужно получить адрес, на который указывает указатель как значение. Вот почему я возвращаю свой указатель как значение.
Теперь я хочу создать функцию, которая удаляет структуру. В качестве параметра функция получает uintptr_t
:
void destroy_handler(uintptr_t ptr) {
........?
}
Итак, мой вопрос: можно ли удалить Struct filehandler
, если у меня есть указатель на него, хранящийся в uintptr_t
и передайте его как значение функции destroy_handler
. И если это возможно, как мне это сделать?
Спасибо, ребята!