для двумерного массива? При том, что количество столбиков и строк одинаковое.
Можно int* arr = new int[N*M];
это уже не то. Мне нужно, чтобы можно было обращаться по двум индексам, arr[0][1], например
Можно и без двух индексов ходить, просто чуть сложнее
Зачем такое?
мне нужно с двумя) для одномерного я и сам знаю как выделить память. Я пока что ничего лучше этого не смог придумать : float** field=new float*[size]; for (int i=0;i<size;i++){ field[i] = new float[size]; }
Ну ничего лучше и не придумаешь
ладно. Спасибо
Я придумал, смотри: float** field = allocate_MxN_array(size, size);
нужно поле сделать. А в скорости обращения к каким-то элементам в одномерном массиве будет преимущество?
Будет быстрее, и по памяти скорее всего выгоднее
по памяти да, догадался. Хорошо, переделаю)))
Не вижу связи между "сделать поле" и "в одну строчку"
массивы в любом случае одномерные
Сделай нормальную обёртку со смыслом, а не голые указатели-массивы
хочу чтобы это поле выглядело как поле, а не тропинка и при этом кода было мало, т. е. 1 строка
представлять удобнее
сделаю, все сделаю. Только завтра
Это — одномерный массив.
Нельзя. Можно только так: #include <iostream> #include <cstdlib> #include <ctime> int main() { std::srand(std::time(nullptr)); size_t N; const size_t M = 10; std::cout << "Input number of rows " << std::endl; std::cin >> N; std::cout << "Creating array " << N << " by " << M << std::endl; auto a = new int[N][M]; for(size_t i = 0; i < N; ++i) { std::cout << i << " : "; for(size_t j = 0; j < M; ++j) { a[i][j] = std::rand(); std::cout << j << ": "<< a[i][j] << ","; } std::cout << std::endl; } return 0; }
int (*arr)[widht] = calloc(height, sizeof(*int));
>С++ чат >Советовать VLA
Обсуждают сегодня