Другие языки программирования и технологии
Как описать и использовать динамический массив в C++
Нужно описать двухмерный массив. У массива всегда 2 строки , а вот количество столбцов может меняться. Если описать через вектор - int *mtx = new int[Количество столбцов * 2 ]; то как потом обращаться к определенным ячейкам ? Объясните, пожалуйста, по-подробнее. Или еще какие-нибудь методы. Заранее спасибо.
ну можно аналогично сделать и подругому
int *m= new int[][2];
либо вот статейка
http://ad.cctpu.edu.ru/cpp/glava16_3.htm
int *m= new int[][2];
либо вот статейка
http://ad.cctpu.edu.ru/cpp/glava16_3.htm
#include <vector>
using namespace std;
vector<int> massiv [2]; Массив из 2 векторов, где каждый элемент - инт
Ну или
struct massiv2int
{
int data[2];
int& operator [] (int idx) { return data[idx]; }
}
vector <massiv2int> massiv; Вектор, где каждый элемент - массив из 2 интов
using namespace std;
vector<int> massiv [2]; Массив из 2 векторов, где каждый элемент - инт
Ну или
struct massiv2int
{
int data[2];
int& operator [] (int idx) { return data[idx]; }
}
vector <massiv2int> massiv; Вектор, где каждый элемент - массив из 2 интов
struct _NAME
{
int a; // Элемент первой строки
int b; // Элемент второй строки
};
_NAME *pArr = new _NAME[N];
pArr[ i ].a;
pArr[ i ].b;
{
int a; // Элемент первой строки
int b; // Элемент второй строки
};
_NAME *pArr = new _NAME[N];
pArr[ i ].a;
pArr[ i ].b;
просто надо выделить память под массив... в win32
LocalAlloc LocalFree
LocalAlloc LocalFree
Динамический массив:
int **mas, i, j, m;
cout << "Stolbcov: ";
cin >> m;
mas=new int*[2];
for( i = 0; i < 2; i++) mas[ i ]=new int[m];
Заполнение массива:
for( i = 0; i < 2; i++)
for( j = 0; j < m; j++)
cin >> mas[ i ][ j ];
Форматированный вывод массива:
for( i = 0; i < 2; i++)
{
cout << endl;
for( j = 0; j < m; j++)
cout << mas[ i ][ j ] << "\t";
}
int **mas, i, j, m;
cout << "Stolbcov: ";
cin >> m;
mas=new int*[2];
for( i = 0; i < 2; i++) mas[ i ]=new int[m];
Заполнение массива:
for( i = 0; i < 2; i++)
for( j = 0; j < m; j++)
cin >> mas[ i ][ j ];
Форматированный вывод массива:
for( i = 0; i < 2; i++)
{
cout << endl;
for( j = 0; j < m; j++)
cout << mas[ i ][ j ] << "\t";
}
Вектор - это класс представляющий собой динамический массив. С ним очень удобно работать. Но на C++ есть еще путь объявить динамический массив.
int n = 255;
int *A = new int[2][n];
Использование масива.. .
A[1][23]=67;
Удаление масива.. .
delete[] A;
int n = 255;
int *A = new int[2][n];
Использование масива.. .
A[1][23]=67;
Удаление масива.. .
delete[] A;
Леонид Курамов
Да? и это динамический массив?
Александр Юдин
Неа, не проходит, ошибки вылетают...
[C++ Error] Unit1.cpp(21): E2313 Constant expression required
[C++ Error] Unit1.cpp(21): E2034 Cannot convert 'int ( *)[1]' to 'int *'
[C++ Error] Unit1.cpp(23): E2062 Invalid indirection
[C++ Warning] Unit1.cpp(26): W8004 'n' is assigned a value that is never used
вот код
int n = 255;
int *A = new int[2][n];
A[1][23]=67;
delete[] A;
[C++ Error] Unit1.cpp(21): E2313 Constant expression required
[C++ Error] Unit1.cpp(21): E2034 Cannot convert 'int ( *)[1]' to 'int *'
[C++ Error] Unit1.cpp(23): E2062 Invalid indirection
[C++ Warning] Unit1.cpp(26): W8004 'n' is assigned a value that is never used
вот код
int n = 255;
int *A = new int[2][n];
A[1][23]=67;
delete[] A;
Похожие вопросы
- динамический массив в Visual C++
- вопрос о динамических массивах в fortran
- пожалуйста, напишите мне программу этого вопроса в C ++.пожалуйста помогите. Создать динамический массив из N чисел.
- Написать программу в VBA арифметической прогрессии в динамическом массиве.
- С++: Как изменять размеры многомерных динамических массивов по ходу выполнения программы?
- c++ динамический массив
- Вычислить сумму нечетных элементов в программа С++ .Через статический и динамический массив! Вот я сам написал проверьте
- C++ :Разработать пользовательскую библиотеку для работы с односвязным списком (использовать динамическую память).
- С++ Динамический массив
- Динамический массив. help
[C++ Error] Unit1.cpp(21): E2313 Constant expression required
[C++ Error] Unit1.cpp(21): E2034 Cannot convert 'int ( *)[1]' to 'int *'
[C++ Error] Unit1.cpp(23): E2062 Invalid indirection
[C++ Warning] Unit1.cpp(26): W8004 'n' is assigned a value that is never used
вот код
int n = 255;
int *A = new int[2][n];
A[1][23]=67;
delete[] A;