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

Всем привет. Никак не могу понять динамически массивы в C++.

Завожу значения в массив, в следующем цыкле пытаюсь вывести его, выводит совершенно другой массив.
Что я делаю не так?
Просто раньше изучал немного C#. Думал не так сложно будет перейти на плюсы. Как понимаю C++ более направлен на оптимизацию памяти.

#include "pch.h"
#include

int main()
{
setlocale(LC_ALL, "Russian");
int n, c;
std::cin >> n;
std::cin >> c;

int *a = new int[n, c];

for (int i = 0; i < n; i++) {
for (int j = 0; j < c; j++) {
a[i, j] = rand() % 15 - 10;
std::cout << a[i, j] << "\t";

}
std::cout << "\n";
}

std::cout << "\n";
std::cout << "\n";

for (int i = 0; i < n; i++) {
for (int j = 0; j < c; j++) {

std::cout << a[i, j] << "\t";
}
std::cout << "\n";
}

delete[] a;

system("pause");
}
у тебя код капец не читаемый, не помню как в с++ но в делфи для все обектов массива нужно обявлять длинну

var A: array of integer;
begin
SelLength(A,999);
for integer(var B):=0 do
begin
A[B]:=Random(MAX_INT);
inc(B);
end;
после работы через обнуление или уничтожение снова с многомерными также
Николай Глинов
Николай Глинов
484
Лучший ответ
Павел Тимошенко А у него с длинной все в порядке и объявлен правильно - тип, длина! Но!!!! Динамический массив это линейная область памяти и объявлять нужно n*c и следить за строками и колонками будешь сам!!
>Как понимаю C++ более направлен на оптимизацию памяти.
Это просто совершенно разные языки.

std::cout << "\n";
std::cout << "\n";

А написать один раз

std::cout << "\n\n";

это не легче было бы, чем вот эдак копипастить?

Поправил малец:

int main()
{
int n, c;
std::cin >> n;
std::cin >> c;

int** a = new int*[n];

for (int i = 0; i < n; i++)
{
a[i] = new int[c];
for (int j = 0; j < c; j++)
{
a[i][j] = rand() % 15 - 10;
std::cout << a[i][j] << "\t";

}
std::cout << "\n";
}

std::cout << "\n\n";

for (int i = 0; i < n; i++)
{
for (int j = 0; j < c; j++)
std::cout << a[i][j] << "\t";
std::cout << "\n";
}

}
Главная ошибка - неправильное использование оператора "запятая"

arr[i,k] абсолютно то-же самое, что и arr[k]
а двумерный массив записывается так arr[i][k]
cppstudio.com/post/432/
Двумерный динамический массив выделяется иначе чем у вас это реализовано. Или я не знаю такого способа. Читаем, просвящаемся, пробуем выделить так же как в примере.
Чынгыз Мамыралиев Да вроде нашел как объявляется двумерный массив, спасибо.
Просто делал по аналогии как и с одномерным массивом, а в итоге шиш)