Выделаю память для строк столбцов массива так:
int n=11;
int **mas = new int *[n];
Потом каждому столбцу выделаю разное количество строк:
for (k = n - 1; k >= 0; k--)
{
gcd=1 + rand() % 8 ;
mas[k] = new __int64[gcd];
}
Как узнать длину каждой строки отдельно подскажите, пожалуйста.
Ни в С++ после выделения памяти с помощью
T* = new T[42];
ни в C после
T* = (T*) malloc(sizeof(T) * 42);
невозможно узнать размер выделенной памяти. По крайней мере, невозможно переносимым способом. То, что Вам нужно, примерно следующая структура (Внимание: это плохой код)
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
struct Foo
{
Foo(int n)
: nrow(n), row_length(new int[n]), data(new int*[n])
{
srand(time(0));
for (int i=0; i<nrow; ++i)
{
row_length[i] = rand() % 8 + 1;
data[i] = new int[row_length[i]];
for (int j = 0; j < row_length[i]; ++j)
data[i][j] = rand() % 10;
}
}
int nrow;
int* row_length;
int** data;
int* operator[] (int i) { return data[i]; }
};
int main()
{
Foo foo(3);
for (int i = 0; i < foo.nrow; ++i)
{
for (int j = 0; j < foo.row_length[i]; ++j)
cout << foo[i][j] << " ";
cout << endl;
}
return 0;
}
Правильно в такой ситуации использовать std::vector<std::vector<T>>
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
необходимо через programm parametres передать два числа и знак между арифметического действия, например 3 + 2Программка выполняет арифметическую операцию...
Я хочу сделать всплывающее меню/окно, которое не закрывает полностью активити(есть отступы) + при нажатии кнопки в этом самом меню оно закрывалось...
Задача: Юзер в Activity вводит свой email и нажимает кнопкуПри нажатии с помощью Retrofit делается запрос на сервер, который высылает на email юзера пароль...
Имеется три метода, которые в результате своей работы возвращают массивы типа doubleЗаполнение массива данными из одного метода выглядит у меня...