Здравствуйте, есть код:
#include <iostream>
#include <cmath>
using namespace std;
void print(int ** m, unsigned rows, unsigned cols)
{
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < cols; j++)
{
cout << m[i][j] << " ";
}
cout << endl;
}
}
int main()
{
int ** m = new int *[5];
for (int i = 0; i < 5; i++)
{
m[i] = new int[5];
for (int j = 0; j < 5; j++)
{
m[i][j] = i + j;
cout << m[i][j] << " ";
}
cout << endl;
}
cout << "==========================" << endl;
print(m, 5, 5);
return 0;
}
Видно, что массив построен на указателях. При создании массива в main()
он попутно и выводится, всё в порядке. А вот при выводе в методе print
, выводится не корректная информацию.
Я понял, что когда в методе print
я прошу вывести масcив используя индексы i
и j
, я использую указатели, и неверный вывод связен, скорее всего, с указанием указателя куда-то в небо, но почему так происходит? Прошу, пожалуйста, разъяснить - в чём заключается ошибка?
Вы не хотите заменить
for (int j = 0; i < cols; j++)
на
for (int j = 0; j < cols; j++)
?
Смотрите сами
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть набор точек типа std::pair<int, int>, представляющих собой вершины некоторого многоульника (вообще говоря, невыпуклого)Дана некоторая вершина...
С помощью API браузера произвожу захват видео (html5webm) и отправку фрагментов на удаленный сервер
Я решил скомпилировать программу obs-studio (я использовал clion), но при сборке cmake-а возникает ошибка: