Другие языки программирования и технологии

Как в с++ сделать полноценный динамический массив?

Не получается сделать динамический массив, в котором количество строк и элементов в строке определяет пользователь.
пишу так: int *m = new int[k][a]; , но не получается
Я думаю тебе будет интересно почитать "Списки C++". Не получается у тебя скорее всего потому, что переменные a и k должны быть константами.
ДШ
Даниил Шошин
420
Лучший ответ
Иван Кулагин Подскажите, именно какие Вы предпочли и почитали уже?
Артём Тимоха К слову в С++ 11 и выше допустимы классические массивы с переменной.
Коммент скорее для marc, но лан...
Конечно не получается - в C++ нет многомерных массивов. Есть массивы массивов, массивы указателей на массивы, массивы векторов и т. д. во всех возможных комбинациях. У всех вариантов есть свои плюсы и минусы. Вот исходя из этого и действуй.
std::vector
Сергей Кис.
Сергей Кис.
24 295
Дидар Ришадов как будет выглядеть код с этим "вектором" для дин. массива massiv [k][a] ?
#include
#include
#include
using namespace std;

int main(int argc, char* argv[])
{
int stroka=5;
int stolb=3;
srand(time(0)); // генерация случайных чисел
// динамическое создание двумерного массива вещественных чисел
float **ptrarray = new float* [stroka];
for (int count = 0; count < stroka; count++)
ptrarray[count] = new float [stolb];
// заполнение массива
for (int count_row = 0; count_row < stroka; count_row++)
for (int count_column = 0; count_column < stolb; count_column++)
ptrarray[count_row][count_column] = (rand() % 10 + 1) / float((rand() % 10 + 1)); //заполнение массива случайными числами с масштабированием от 1 до 10
// вывод массива
for (int count_row = 0; count_row < stroka; count_row++)
{
for (int count_column = 0; count_column < stolb; count_column++)
cout << setw(4) <<setprecision(2) << ptrarray[count_row][count_column] << " ";
cout << endl;
}
// удаление двумерного динамического массива
for (int count = 0; count < stroka; count++)
delete []ptrarray[count];
system("pause");
return 0;
}
Артём Тимоха Сам ptarray не удалили. Да память освободит ОС, но...
Никак. Для этого нужно пилить руками фабрику объектов.
Ярослав Ильин
Ярослав Ильин
2 663
Артём Тимоха Супер! Так и скажу своему диру =)