int **dynamic_array = new int*[4]; for (unsigned int i = 0; i < 4; ++i) dynamic_array[i] = new int[7]; // создаём динамический массив
for (unsigned int i = 0; i < 4; ++i) for (unsigned int j = 0; j < 7; ++j) if (j != 3) dynamic_array[i][j] = i; // заполняем его теми же числами, что и в статическом массиве else dynamic_array[i][j] = i + 5;
Add_10_to_all_values_of_array(&static_array[0][0], 4, 7); // добавляем 10 ко всем элементам статического массива Add_10_to_all_values_of_array(*dynamic_array, 4, 7); // добавляем 10 ко всем элементам динамического массива
return 0; }
А вообще, создавать подобным образом "динамические массивы" - это не есть гут. Потому что это массив указателей, а не "двумерный массив". У двумерного массива все его "строки" будут иметь одинаковую длину, а в случае с массивом указателей - это условие не обязательно будет верно...
Функция, изначально заточенная под статические массивы, всегда будет работать и с динамическим массивом тоже (если в ней не указывать размер массива явно). А вот обратное будет неверно, поэтому лучше всегда работать со стеком. Для "нормальных" динамических массивов в C++ уже давно придуман std::vector, и изобретать велосипед тут незачем. Именно вектор я тебе, Пакка, и рекомендую использовать.