Все задачи однотипные, нужно знать понятия глубины цвета и как расчитывается объём для растрового изображения. 1.всего пикселей 128*128= 2^14(2 в 14-ой степени) так как 32 цвет, то один символ кодируется 5 битами (log2(32), если бы было 33 цвета то уже бы потребовалось 6 бит, так как 5 бы не хватило). Нам нужно в килобайтах значит нужно разделить на 2^13 (т.к. в 1 кбайте 2^13 бит)
int cols;
int rows;
cout << "Введите размер столбцов ->" << endl;
cin >> cols;
cout << "Введите размер строк ->" << endl;
cin >> rows;
//выделение памяти для двумерного массива
int **ptrarray = new int*[cols];
for (int count = 0; count < cols; count++)
ptrarray[count] = new int[rows];
for (int count_row = 0; count_row < cols; count_row++)
for (int count_column = 0; count_column < rows; count_column++)
ptrarray[count_row][count_column] = rand() % 41 + (-20);
for (int count_row = 0; count_row < cols; count_row++)
{
for (int count_column = 0; count_column < rows; count_column++)
cout << setw(4) << setprecision(2) << ptrarray[count_row][count_column] << " ";
cout << endl;
}
// удаление двумерного динамического массива
for (int count = 0; count < cols; count++)
delete[] ptrarray[count];
delete[] ptrarray;
Объяснение: