Эффекты выделения и освобождения памяти. Как только вы выделяете память для какой-то цели, она остается выделенной, пока вы не освободите ее.Пока он выделен, он не доступен для других целей.Причиной освобождения является необходимость сделать эту память доступной для других целей.
Почему это важно. Это становится важным, если ваша программа продолжает выделять новые порции памяти с течением времени.Если вы не освобождаете память, когда она вам больше не нужна, использование памяти вашей программой растет, растет и растет и может в конечном итоге исчерпать пул памяти, который операционная система делает доступным для нее.
Никакого реального вреда в этом примере. В конкретном примере вы (вероятно) не повредите, пропуская освобождение.Во-первых, программа заканчивается сразу после этого, поэтому программа больше не использует эту память.С другой стороны, как уже упоминали другие, в типичных реализациях C ваша программа возвращает всю свою память при выходе.
Но если вашей программе может понадобиться память для чего-то другого, или если ваша программа выигралане возвращать память операционной системе при выходе из системы, это хорошая идея освободить память, когда она вам больше не нужна.
Память, а не указатель, освобождается. Строго говоря, этот пример не освобождает указатель.Это освобождает память, на которую указывает указатель.Указатель все еще там, и фактически все еще указывает на освобожденную память.Это может привести к бесконечной радости отладки, если вы по неосторожности продолжите использовать указатель, как если бы он все еще указывал на принадлежащую ему память.