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

Передача двумерного массива через указатели - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Умножение динамических матриц http://www.cyberforum.ru/cpp-beginners/thread187092.html
Добрый день У меня возникли сложности с программой... Помогите пожалуйста Ситуация сложилась так: нужно создать и заполнить 2 динамические матрицы Нужно умножить 2 динамические матрицы это...
C++ Эмулятор трёхадресной машины. В общем, имеется задача "Эмулятор трёхадресной машины". Каждая инструкция имеет следующий формат: код инструкции (1 байт), операнд 1 (1 байт), операнд 2 (1 байт), операнд 3 (1 байт), при этом... http://www.cyberforum.ru/cpp-beginners/thread187080.html
Составить программу, вычисляющую с точностью eps сумму заданного ряда C++
Задание: Составить программу, вычисляющую с точностью eps сумму заданного ряда. Примечание: вычислить сумму ряда с точностью eps значит завершить суммирование членов ряда тогда, когда очередной член...
Запись в текстовый файл C++
#include <vcl.h> #pragma hdrstop #include <conio.h> #include <iostream.h> #include <stdio.h> #pragma argsused #include <fstream.h> void main() { FILE*p1;
C++ Вычисление собственных значений и собственных векторов матрицы http://www.cyberforum.ru/cpp-beginners/thread187043.html
Вычисление собственных значений и собственных векторов матрицы. Метод скалярных произведений Матрицу задаём произвольно! а дальше по заданию!! помогите с прогой!!
C++ Написать класс, описывающий дерево Хочется понять, как написать простейший класс, описывающий дерево. Компилирует данный код, но пишет пишет "ошибка сегментирования" #include <iostream> using namespace std; class Tree { подробнее

Показать сообщение отдельно
Lerny
56 / 56 / 3
Регистрация: 14.03.2010
Сообщений: 151
07.11.2010, 12:43
Резюмирую уже возможные способы, которые с лихвой хватит:
1. Динамический массив.
C++
1
2
3
4
5
6
7
8
9
10
11
void input (float **B, int const n, int const m)
{
        for (int str=0; str<n; str++)
        {
                for (int stl=0; stl<m; stl++)
                {
                        cout << "B["<<str<<"]["<<stl<<"]: ";
                        cin >>B[str][stl];
                }
        }
}
C++
1
2
3
4
5
float **B = new float *[n];
for (int i=0; i<n; i++)
         B[i] = new float [m];
 
input(B,n,m);
C++
1
2
3
for (int i=0; i<n; i++) delete [] B[i];
delete [] B;
B=NULL
2.Передача указателя на первый элемент массива
C++
1
2
3
4
5
6
7
8
9
void input (float *p, int const n, int const m)
{
for (int str=0; str<2; str++)
        for (int stl=0; stl<2; stl++)
        {
         cout << "B["<<str<<"]["<<stl<<"]: ";
         cin >> p[2*str + stl];
        }
}
C++
1
2
 float A[n][m];
        input(&A[0][0],n,m);
3. Создание массива указателей.
C++
1
2
3
4
5
6
7
8
9
void input (float *p[][2], int const n, int const m)
{
for (int str=0; str<n; str++)
        for (int stl=0; stl<m; stl++)
        {
         cout << "B["<<str<<"]["<<stl<<"]: ";
         cin >> *p[str][stl];
        }
}
C++
1
2
3
4
5
6
7
8
float A[n][m];
        float *p[n][m];
 
        for (int str=0; str<n; str++)
        for (int stl=0; stl<m; stl++)
        p[str][stl]=&A[str][stl];
 
        input(p,n,m);
В последнем случае ты массив полностью передаёшь)
2
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru