Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Kran4
0 / 0 / 0
Регистрация: 20.11.2010
Сообщений: 16
#1

Выделение памяти под масссив - C++

16.12.2010, 16:55. Просмотров 462. Ответов 5
Метки нет (Все метки)

Как занести данные в двумерный массив с клавиатуры? пользователь должен сам ввести размерность
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.12.2010, 16:55
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Выделение памяти под масссив (C++):

Выделение памяти под структуру
Наведите пример выделения памяти под структуру

Выделение памяти под структуру
Доброго дня, товарисчи. В общем, возникла проблема при выделении памяти для...

Выделение памяти под массив
в массиве данных хранять в последовательных ячейках памяти В программе,...

Выделение памяти под структуры
Когда я только знакомился с кодингом на С(С++) я скачивал с инета очень много...

Выделение памяти под переменную
Драсте, уважаемые. Мне надо выделить переменную на 25мег, чтоб в ней хранить...

Выделение памяти под файл
Всем доброго времени суток. Написал некоторую структуру, работают все пунктики,...

5
lemegeton
2933 / 1362 / 467
Регистрация: 29.11.2010
Сообщений: 2,725
16.12.2010, 17:14 #2
Почитайте, пожалуйста, FAQ. Для вас же писалось.

Добавлено через 4 минуты
Этого нет в FAQ.
C++
1
2
3
4
5
6
7
int** Array; // указатель на указатель на массив
int N=10;     // можно вводить пользователем
int M=10;
Array = new *int[N]; // создаем массив указателей на интеджеры
for (int i=0; i<N; i++) // в каждый такой указатель
     Array[i] = new int[M];  // выделяем памяти под массив интеджеров
Array[0][0]=1;
Получили массив указателей на массивы интеджеров -- двумерный массив.
0
Kran4
0 / 0 / 0
Регистрация: 20.11.2010
Сообщений: 16
16.12.2010, 17:39  [ТС] #3
C++
1
2
3
4
5
6
7
8
9
10
cout<<" Ввод с клавиатуры"<<endl;
                        printf("\n Введите размерность матрицы");
                            scanf_s("%d", &n);
                        printf("\n Введите элементы матрицы /n");
                        a = new int*[n];
                        for(i=0;i<=n;i++){
                           a[i] = new int[n];
                        for(j=0;j<=n;j++)
                            cin>>a[i][j];
                        }
Почему у меня криво это работает? по идее при вводе размерности 2, должна получиться матрица 3x3. а у меня получается 2x2 и ввод идет 9ти чисел
0
Lord_Voodoo
Супер-модератор
8607 / 2228 / 133
Регистрация: 07.03.2007
Сообщений: 10,803
Завершенные тесты: 1
16.12.2010, 17:41 #4
Kran4, ну вообще у вас по коду получается матрица - 2 на 2:
C++
1
2
3
4
5
6
7
a = new int*[2];
for(i=0;i<=2;i++)
{
  a[i] = new int[2];
  for(j=0;j<=2;j++)
    cin>>a[i][j];
}
0
Kran4
0 / 0 / 0
Регистрация: 20.11.2010
Сообщений: 16
16.12.2010, 18:19  [ТС] #5
но ввод у меня не правильно идет по этому коду

C++
1
2
3
4
5
6
7
8
9
10
  cout<<" Ввод с клавиатуры"<<endl;
                        printf("\n Введите размерность матрицы");
                            scanf_s("%d", &n);
                        printf("\n Введите элементы матрицы /n");
                        a = new int*[n];
                        for(i=0;i<=n;i++){
                           a[i] = new int[n];
                        for(j=0;j<=n;j++)
                            cin>>a[i][j];
                        }
0
lemegeton
2933 / 1362 / 467
Регистрация: 29.11.2010
Сообщений: 2,725
16.12.2010, 21:01 #6
Вообще-то вы в цикле выходите за границы массива.
Должно быть
C++
1
2
3
4
5
6
7
for(i=0;i<n;i++) // массив содержит элементы a[0], a[1], ..., a[n-1], 
                             // поэтому i<n, а не i<=n
{
     a[i] = new int[n]; // массив содержит элементы a[0], a[1], ..., a[n-1].
     for(j=0;j<n;j++)
          cin>>a[i][j];
}
1
16.12.2010, 21:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.12.2010, 21:01
Привет! Вот еще темы с решениями:

Выделение памяти под матрицу
Всем привет. float **AllocMat(int Rows, int Colomns) { float...

Выделение памяти под указатель
Здравствуйте форумчане,у меня возник маленький вопрос:) Почему sizeof(char)...

Выделение памяти под указатель
Здравствуйте! Есть следующий код. Я разбиваю строку на слова и слова заданной...

Выделение памяти под матрицу
Всем доброго времени суток! Есть такая проблема, у меня есть свой класс Cell....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru