int** array2D - указатель на указатель на int ?
new int*[SIZE] - массив указателей на int ?
а дальше по коду я не понимаю зачем тут array2D[i] = new int[SIZE * 2];
#include <iostream>
#include <vector>
template <typename T>
void print2DFlatArray(const T* array, const size_t rows, const size_t columns)
{
for (size_t y = 0; y < rows; ++y) {
for (size_t x = 0; x < columns; ++x) {
std::cout << array[y * columns + x] << " ";
}
std::cout << std::endl;
}
std::cout << std::endl;
std::cout << std::endl;
}
int main()
{
const size_t SIZE = 10;
int* array = new int[SIZE * SIZE];
array[0] = 10;
array[SIZE + 1] = 11;
array[2 * SIZE + 2] = 12;
print2DFlatArray(array, SIZE, SIZE);
return 0;
}
#include <iostream>
#include <vector>
template <typename T>
void print2DFlatArray(const T* array, const size_t rows, const size_t columns)
{
for (size_t y = 0; y < rows; ++y) {
for (size_t x = 0; x < columns; ++x, ++array) {
std::cout << *array << " ";
}
std::cout << std::endl;
}
std::cout << std::endl;
std::cout << std::endl;
}
int main()
{
const size_t SIZE = 10;
int* array = new int[SIZE * SIZE];
array[0] = 10;
array[SIZE + 1] = 11;
array[2 * SIZE + 2] = 12;
print2DFlatArray(array, SIZE, SIZE);
return 0;
}
Зачем делать из обычного двумерного массива массив указателей?
Почему бы не сделать вот так:
int* array2D = new int[SIZE * SIZE];
int** array2D = new int*[SIZE] - вот это что значит int*[SIZE] - еще разыменование ?
мне не понятно где то пишут что когда передаешь указатель в функцию ты ты должен отдать ссылку на объект
Спасибо конечно, лаконично, но я не знаю что за функция numeric_limits::min(). Даже после прочтения ее описания в справочнике не очень понял что она делает. Думаю пока рано мне о ней знать =)
std::numeric_limits<double>::min();
будет минимальное для типа с плавающей точкой. Т.е. устанавливаем в минимально возможное значение и если в массиве находим значение больше - то меняем на это найденное. Можно было бы использовать INT_MIN отсюда www.cplusplus.com/reference/climits но это скорее подход C, а не C++ net.ipv4.ip_forward=1
и также выполни echo 1 > /proc/sys/net/ipv4/ip_forward
чтоб не перезагружаться) и добавь эти правила в iptables:iptables -A FORWARD -s 10.15.0.0/24 -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.15.0.0/24 -o ens3 -j MASQUERADE