Форум программистов, компьютерный форум CyberForum.ru

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

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

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

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

Как занести данные в двумерный массив с клавиатуры? пользователь должен сам ввести размерность
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.12.2010, 16:55     Выделение памяти под масссив
Посмотрите здесь:

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

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

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

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

Выделение памяти под переменную - C++
Драсте, уважаемые. Мне надо выделить переменную на 25мег, чтоб в ней хранить все просчёты выполненые программой. (Пробовал в BCB6 и в BCW...

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

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

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

Выделение памяти под массивы - C++
int **mas1 = new int*; for (int e = 0; e < q; e++) mas1 = new int; int **mas2 = new int*; for (int q = 0; q < e;...

Выделение памяти под матрицу - C++
Всем доброго времени суток! Есть такая проблема, у меня есть свой класс Cell. Мне нужно создать матрицу объектов этого типа и выделить под...

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

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


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
2918 / 1347 / 134
Регистрация: 29.11.2010
Сообщений: 2,721
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;
Получили массив указателей на массивы интеджеров -- двумерный массив.
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ти чисел
Lord_Voodoo
Супер-модератор
8580 / 2180 / 61
Регистрация: 07.03.2007
Сообщений: 10,863
Завершенные тесты: 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];
}
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];
                        }
lemegeton
2918 / 1347 / 134
Регистрация: 29.11.2010
Сообщений: 2,721
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];
}
Yandex
Объявления
16.12.2010, 21:01     Выделение памяти под масссив
Ответ Создать тему
Опции темы

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