realloc возвращает указатель void в перераспределенном (и, возможно, перемещенном) блоке памяти.
Если доступной памяти недостаточно для расширения блока до заданного размера, исходный блок остается без изменений и NULL возвращается.
Если size равен нулю, то блок, на который указывает memblock, освобождается; возвращается значение NULL, memblock по-прежнему указывает на освобожденный блок.
Возвращаемое значение указывает на дисковое пространство, подходящее для хранения объектов любого типа. Чтобы получить указатель на тип, отличный от void, используйте приведение типов для возвращаемого значения. (learn.microsoft.com)
Ги-ги-ги
Если доступной памяти недостаточно для расширения блока до заданного размера, исходный блок остается без изменений и NULL возвращается.
Если size равен нулю, то блок, на который указывает memblock, освобождается; возвращается значение NULL, memblock по-прежнему указывает на освобожденный блок.
Возвращаемое значение указывает на дисковое пространство, подходящее для хранения объектов любого типа. Чтобы получить указатель на тип, отличный от void, используйте приведение типов для возвращаемого значения. (learn.microsoft.com)
Ги-ги-ги