Предположим, мне дано (void *) ptr (мое базовое понимание - это указатель на область с неизвестным типом данных), переданное через параметр функции. Я пытаюсь выяснить, как получить доступ и проверить, если структура существует несколько адресов позади.
Чтобы уточнить, я работаю с большим массивом символов (не malloced) и ptr, переданный в функцию должен указыватьна адрес неопределенного типа данных в массиве. Перед этими данными расположена структура, к которой я пытаюсь получить доступ.
void function(void *ptr)
{
void *structPtr = (void*)((void*)ptr - sizeof(struct block));
}
Будет ли это работать, чтобы получить указатель на адрес структуры, расположенной за начальным "ptr"? И если да, то как я могу проверить, является ли это структурой блока?
Заранее извиняюсь, я знаю, что этот код не является специфическим, поскольку я совершенно новичок в понятиях, но также я нахожусь в процессепридумать алгоритм и еще не реализовать его. Любые ссылки на возможно полезную информацию приветствуются.