В C fread() имеет параметр void *, которому будет присвоено значение следующего фрагмента байтов, считанных из файла. Мое понимание заключается в том, что void * используется так, что функции могут быть переданы нескольким типам данных. Однако, когда я пытаюсь использовать этот тип параметра в своей собственной функции, кажется, что присвоение значения void * недопустимо.Назначение значений для void *
Например:
void* ptr = malloc(sizeof(int));
int n = 5;
*ptr = n; //Error here
Это дает ошибку о том, что пустота не может быть назначен. Если это так, то как это работает в fread()?
Возможный дубликат [Присвоение значений указателю недействительности void] (http://stackoverflow.com/questions/7081288/assign-values-to-a-dereferenced-void-pointer) – Barmar
@Barmar Я видел это, я не нашел удовлетворительного ответа и не было объяснено, почему его можно использовать в fread(), а не в других функциях. – JDOdle
Эти функции содержат код, похожий на ответ. Перед разыменованием они накладывают указатель на соответствующий тип. – Barmar