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