
Мой опыт создания динамических массивов с использованием указателей в C
Здравствуйте! Меня зовут Алексей‚ и я хочу поделиться с вами своим личным опытом создания динамических массивов с использованием указателей в C ․
Когда я начал изучать C ‚ одной из самых интересных и полезных для меня возможностей языка была работа с динамическими массивами․ Эта функциональность позволяет создавать массивы переменного размера во время выполнения программы․
Для создания динамического массива пришлось использовать указатели․ Указатель ⎻ это переменная‚ которая хранит адрес в памяти другой переменной․ В данном случае указатель используется для хранения адреса первого элемента создаваемого динамического массива․Для начала создадим двумерный массив ″а″ размером (nxm)․ В данной задаче я буду использовать стандартный ввод для определения значений ″n″ и ″m″․cpp
#include
using namespace std;
int main {
int n‚ m;
cout << ″Введите количество строк массива⁚ ″;
cin >> n;
cout << ″Введите количество столбцов массива⁚ ″;
cin >> m;
int** a new int*[n]; // создаем массив указателей
for (int i 0; i < n; i ) {
a[i] new int[m]; // создаем строки двумерного массива
}
// далее можно заполнить двумерный массив ″а″ значениями с помощью циклов
}
Теперь‚ когда у нас есть двумерный массив ″а″ размером (nxm)‚ мы можем перейти к заполнению одномерного массива‚ находя произведение отрицательных элементов в каждом столбце матрицы․cpp
#include
using namespace std;
int main {
// ․․․ код для создания двумерного массива ″а″
int* b new int[m]; // создаем одномерный массив
for (int j 0; j < m; j ) { int prod 1; // переменная для хранения произведения for (int i 0; i < n; i ) { if (a[i][j] < 0) { prod * a[i][j]; // умножаем отрицательные элементы } } b[j] prod; // записываем произведение в одномерный массив }
// ․․․ код для вывода одномерного массива ″b″ на экран // не забываем освободить память после окончания работы с массивами
for (int i 0; i < n; i ) {
delete[] a[i]; // удаляем строки двумерного массива
}
delete[] a; // удаляем массив указателей
delete[] b; // удаляем одномерный массив
return 0;
}
Вот и все! Теперь у нас есть полноценная программа на C ‚ которая создает двумерный динамический массив‚ заполняет его значениями и находит произведение отрицательных элементов в каждом столбце‚ затем записывает полученные значения в одномерный динамический массив и освобождает память после завершения работы․
Надеюсь‚ мой опыт будет полезен для вас при создании программ на C ! Удачи!