Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Kran4
0 / 0 / 0
Регистрация: 20.11.2010
Сообщений: 16
#1

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

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

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

Выделение памяти под матрицу - C++
Всем привет. float **AllocMat(int Rows, int Colomns) { float ** Mat; try { Mat = new...

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

Выделение памяти под структуру - C++
Доброго дня, товарисчи. В общем, возникла проблема при выделении памяти для структуры. Подскажите, пожалуйста, в чем ошибка. Собсна сам...

Выделение памяти под массив - C++
Требуется выделить память под матрицу. Будет ли следующий код работать корректно? //глобальная область int x_size = 3; ...

Выделение памяти под матрицу - C++
Существует такой класс: class matr{ public: double **m; // адрес матрицы int mi, my; //стобцы, строки //функции ...

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

5
lemegeton
2931 / 1360 / 136
Регистрация: 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
Супер-модератор
8606 / 2227 / 61
Регистрация: 07.03.2007
Сообщений: 10,798
Завершенные тесты: 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
2931 / 1360 / 136
Регистрация: 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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.12.2010, 21:01
Привет! Вот еще темы с ответами:

Выделение памяти под структуру - C++
enrollee *p=new enrollee; после работы delete p; выбивает ошибку. неправильно очищаю???

Выделение памяти под указатель - C++
Доброго времени суток. Возник такой вопрос: для любой программы, насколько мне известно, выделяется свой кусочек оперативной памяти. Когда...

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

Выделение памяти под файл - C++
Всем доброго времени суток. Написал некоторую структуру, работают все пунктики, все функции, но нашёлся недочёт. Если записывать в файл...


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

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

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