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

ввод двумерного массива - C++

Восстановить пароль Регистрация
 
sword7i
3 / 3 / 0
Регистрация: 25.09.2012
Сообщений: 92
19.12.2012, 23:24     ввод двумерного массива #1
Дана функция ввода массива (vvod) и ввода строки массива (vvodStr) с динамическим распределением памяти.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
float* vvodStr (int n)
{
    float* masStr=new float[n];
    for (int i=0;i<n;i++)
    {
        cout<<i+1<<"-й элемент: ";
        cin>>*(masStr+i);
    }
    return masStr;
}
 
float** vvod (int m,int n)
{
    float** mas=new float*[m];
    for (int i=0;i<m;i++)
    {
        cout<<"\nВведите элементы "<<i+1<<"-й строки\n";
        *(mas+i)=vvodStr(n);
    }
    return mas;
}
Объясните пожалуйста, принцип работы. Подо что выделяется память здесь float** mas=new float*[m]; и здесь:float* masStr=new float[n];

И еще вопрос почему при статическом распределении памяти, в списке формальных параметров мы первые квадратные скобки оставляем пустыми, а во вторых указываем число? например float mas[][100] - массив 100х100 элементов.

Заранее спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2012, 23:24     ввод двумерного массива
Посмотрите здесь:

ввод двумерного массива по строкам C++
Ввод двумерного массива. C++
C++ ввод двумерного массива,ввод размерности массива,заполнение массива случайными числами
C++ ввод двумерного массива
Функции двумерного массива. Транспонировать матрицу через ввод вывод функции двумерного массива. C++
C++ Ввод двумерного массива
C++ Ввод двумерного массива из файла
C++ Написать программу, которая вычисляет сумму элементов двумерного массива по столбцам. Организовать ввод массива с клавиатуры по строкам

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
pavlovnik
41 / 22 / 4
Регистрация: 07.12.2011
Сообщений: 114
19.12.2012, 23:46     ввод двумерного массива #2
предположу что:

float* masStr=new float[n]

динамически выделяем память. указатель masStr указывает на массив из n значений float

float** mas=new float*[m]

m это указатель на МАССИВ УКАЗАТЕЛЕЙ float. Тоесть есть указатель который указывает на массив, в котором хранятся указатели. чтобы именно двумерный массив сделать. одномерный-это строка с ячейками, на них и указывают указатели. а если в каждой ячейке еще указатель, который так же указывает на массив, вот и получили двумерный массив.

а вот при статическом, хз. есть предположение, что оставляем пустым чтобы сделать одинакового размера, то есть можно mas[10][10] или можно [][10]( это только предположение)
Yandex
Объявления
19.12.2012, 23:46     ввод двумерного массива
Ответ Создать тему
Опции темы

Текущее время: 01:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru