Для того чтобы создать двумерный динамический массив на си необходимо выделить память под один одномерный массив, элементами которого будут также являться одномерные массивы. Пусть наш массив будет называться А и хранить в себе целочисленные значения. Для начала необходимо вспомнить, что имя массива содержит в себе ссылку на первый элемент, поэтому мы будем использовать указатель (*). Так как массив A будет двумерным, то он будет указывать на элемент, который также будет являться массивом. То есть для него также потребуется указатель, тогда его объявление будет выглядеть следующим образом: int** a, то есть указатель, на указатель на int...
источник: https://www.studytonight.com/post/what-is-dynamic-programming-in-c Какие задачи решает источник: https://www.geeksforgeeks.org/c-programs-gq/cc-dynamic-programming-programs-gq/