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

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

Войти
Регистрация
Восстановить пароль
 
 
G6
2 / 2 / 1
Регистрация: 20.04.2014
Сообщений: 30
#1

Функция и двумерный массив - C++

12.06.2014, 16:45. Просмотров 346. Ответов 18
Метки нет (Все метки)

Я не знаю в чём проблема заключается на этом этапе, но гуглил я много. Если не сложно, просто исправьте код под нужный или объясните, как сделать, чтобы работало. А нужно чтобы просто по указателю двумерный массив передался в функцию.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <clocale>
 
using namespace std;
 
void opredelitel( int* );
 
int main()
{
    setlocale(LC_ALL,"Russian");
 
    const int N=3;
    int A[N][N];
    srand(time(NULL));
 
    for (int i=0;i<N;i++)
        for (int j=0;j<N;j++)
            A[i][j]=rand()%10-10;       
        for (int i=0;i<N;i++){
            for (int j=0;j<N;j++){
                cout<<A[i][j]<<"  ";}
            cout<<endl;}
 
        opredelitel(*A);
}
            
void opredelitel(int* A[][])
{
    
    cout<<A[0][0]<<endl;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.06.2014, 16:45     Функция и двумерный массив
Посмотрите здесь:

Функция и двумерный массив. - C++
День добрый. У меня такое задание: нужно создать функцию которая будет находить сумму элементов в тех строках, которые содержат хотя бы...

Двумерный массив и функция - C++
Нууууу плиззз подскажите как сделать в виде отдельной функции????? Borland C++ #include&lt;iostream.h&gt; #include&lt;math.h&gt; ...

двумерный массив и функция! - C++
Парни помогите, чего-то я не догоняю! у меня есть функция kol она считает сколько столбцов с нулевым элементом встречается и плюсует в...

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

Функция возвращает двумерный массив - C++
У кого-то есть пример возврата функцией массива? Я пыталась сделать как с обычной переменной - оно компилируется, но не возфращает...

Функция, принимающая двумерный массив - C++
Дело такое: Есть функция, которая в параметрах принимает двумерный массив. Причем двумерные массивы будут различаться, как в количество...

Двумерный массив. Функция возвращает мусор - C++
Добрый день. Необходимо сгенерировать матрицу и заполнить ее. Написал вот такую функцию float** GenerateNaturalNumbers(int...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
12.06.2014, 16:49     Функция и двумерный массив #2
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <clocale>
 
using namespace std;
 
const int N=3; 
void opredelitel(int A[][N])
{
    cout<<A[0][0]<<endl;
}
 
int main()
{
    setlocale(LC_ALL,"Russian");
 
 
    int A[N][N];
    srand(time(NULL));
 
    for (int i=0;i<N;i++)
        for (int j=0;j<N;j++)
            A[i][j]=rand()%10-10;       
        for (int i=0;i<N;i++){
            for (int j=0;j<N;j++){
                cout<<A[i][j]<<"  ";}
            cout<<endl;}
 
        opredelitel(A);
}
G6
2 / 2 / 1
Регистрация: 20.04.2014
Сообщений: 30
12.06.2014, 16:55  [ТС]     Функция и двумерный массив #3
Извини, но такой вариант я сам сделал. Спасибо за ответ, но нужно через указатели
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
12.06.2014, 17:53     Функция и двумерный массив #4
Цитата Сообщение от G6 Посмотреть сообщение
такой вариант я сам сделал
Что-то не видно. Где же он?
Цитата Сообщение от G6 Посмотреть сообщение
нужно через указатели
Нужно понимать что нужно, прежде чем просить.
Могу предложить такой вариант, но не знаю насколько он соответствует ожиданиям:
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <clocale>
 
using namespace std;
 
const int N=3; 
void opredelitel(int* A)
{
    cout<<A[0]<<endl;
}
 
int main()
{
    setlocale(LC_ALL,"Russian");
 
 
    int A[N][N];
    srand(time(NULL));
 
    for (int i=0;i<N;i++)
        for (int j=0;j<N;j++)
            A[i][j]=rand()%10-10;       
        for (int i=0;i<N;i++){
            for (int j=0;j<N;j++){
                cout<<A[i][j]<<"  ";}
            cout<<endl;}
 
        opredelitel(&A[0][0]);
}
Тамика
Котовчанин
870 / 450 / 143
Регистрация: 16.02.2010
Сообщений: 2,954
Записей в блоге: 27
12.06.2014, 17:56     Функция и двумерный массив #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <clocale>
 
using namespace std;
 
void opredelitel( int** m);
 
int main()
{
    setlocale(LC_ALL,"Russian");
 
    const int N=3;
    int** A = new int*[N];
    for (int i =0; i < N; ++i)
        A[i] = new int[N];
 
    srand(time(NULL));
 
    for (int i=0;i<N;i++)
        for (int j=0;j<N;j++)
            A[i][j]=rand()%10-10;       
        for (int i=0;i<N;i++){
            for (int j=0;j<N;j++){
                cout<<A[i][j]<<"  ";}
            cout<<endl;}
 
        opredelitel(A);
 
        for (int i =0; i < N; ++i)
            delete [] A[i];
 
        delete []A;
        system("pause>>null");
}
            
void opredelitel(int** m)
{
    
    cout<<m[0][0]<<endl;
}
G6
2 / 2 / 1
Регистрация: 20.04.2014
Сообщений: 30
12.06.2014, 21:02  [ТС]     Функция и двумерный массив #6
Нет, я без шуток говорил, я действительно реализовал вариант без указателей. Просто мне хотелось понять, как реализовать с указателем. И что именно нужно я тоже сказал:
А нужно чтобы просто по указателю двумерный массив передался в функцию.
Но вообще спасибо за второй вариант.

Добавлено через 5 минут
Спасибо за твой вариант, о ты бы не могла пояснить одну вещь, что ты делаешь здесь:
C++
1
2
3
int** A = new int*[N];
    for (int i =0; i < N; ++i)
        A[i] = new int[N];
Renji
1877 / 1275 / 290
Регистрация: 05.06.2014
Сообщений: 3,636
12.06.2014, 21:11     Функция и двумерный массив #7
А нужно чтобы просто по указателю двумерный массив передался в функцию.
void opredelitel(int(*array)[5][5]){}
uglyPinokkio
326 / 229 / 41
Регистрация: 30.05.2014
Сообщений: 682
12.06.2014, 21:14     Функция и двумерный массив #8
C++
1
2
3
4
    const int N=3;
    int** A = new int*[N];
    for (int i =0; i < N; ++i)
        A[i] = new int[N];
Не, это не спортивно . Как все-таки без костылей передать параметром динамический массив?
Renji
1877 / 1275 / 290
Регистрация: 05.06.2014
Сообщений: 3,636
12.06.2014, 21:18     Функция и двумерный массив #9
Не, это не спортивно . Как все-таки без костылей передать параметром динамический массив?
Динамический в смысле неизвестной размерности - никак. Если функция эту размерность не знает, она не сможет корректно работать с массивом. Динамический в смысле "в динамической памяти" - смотри мой пост выше.
uglyPinokkio
326 / 229 / 41
Регистрация: 30.05.2014
Сообщений: 682
12.06.2014, 21:28     Функция и двумерный массив #10
Цитата Сообщение от Renji Посмотреть сообщение
Динамический в смысле неизвестной размерности - никак. Если функция эту размерность не знает, она не сможет корректно работать с массивом. Динамический в смысле "в динамической памяти" - смотри мой пост выше.
Ну вот этот момент и интересует. Конструкция есть, причем довольно давно и уже в стандарте, а механизма ее полноценного использования так и нет.
Renji
1877 / 1275 / 290
Регистрация: 05.06.2014
Сообщений: 3,636
12.06.2014, 21:37     Функция и двумерный массив #11
Ну вот этот момент и интересует. Конструкция есть, причем довольно давно и уже в стандарте, а механизма ее полноценного использования так и нет.
И не будет. Вы потроха массива себе представляете?
C++
1
2
int array[size_x][size_y];
int test=array[x][y];
Эквивалентно
C++
1
2
int array[size_x*size_y];
int test=array[x*size_y+y];
Не зная size_y, нельзя посчитать и test. Но сам array нигде внутри себя этот size_y не хранит, потому что он - последовательность int, а не хранилище для количества этих int. Так откуда opredelitel должен этот size_y узнать, чтобы корректно рассчитывать адреса элементов двумерного массива? Вот и получаем что с переменной размерностью указатель на двумерный массив не взлетит.
uglyPinokkio
326 / 229 / 41
Регистрация: 30.05.2014
Сообщений: 682
12.06.2014, 21:40     Функция и двумерный массив #12
Цитата Сообщение от Renji Посмотреть сообщение
Вы потроха массива себе представляете?
Вполне . Потому и интересуюсь кто как и для чего использует динамические массивы на стеке.
Тамика
Котовчанин
870 / 450 / 143
Регистрация: 16.02.2010
Сообщений: 2,954
Записей в блоге: 27
12.06.2014, 22:56     Функция и двумерный массив #13
Цитата Сообщение от uglyPinokkio Посмотреть сообщение
Не, это не спортивно . Как все-таки без костылей передать параметром динамический массив?
В чём проблема? Я что-то не поняла. Не вижу Ваших предложений, спортивных, так сказать.
uglyPinokkio
326 / 229 / 41
Регистрация: 30.05.2014
Сообщений: 682
13.06.2014, 05:18     Функция и двумерный массив #14
Цитата Сообщение от Тамика Посмотреть сообщение
Не вижу Ваших предложений, спортивных, так сказать.
м.б. оно есть я а не вижу? Разряд не позволяет .
Так-то я и сам могу.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.06.2014, 10:05     Функция и двумерный массив
Еще ссылки по теме:

Функция, возвращающая указатель на двумерный массив - C++
Добрый день! Столкнулся с конструкцией которую раньше не видел, и не до конца понимаю что это и как работает: #include &lt;stdio.h&gt; ...

Функция, которая аннулирует двумерный динамический массив - C++
Здравствуйте! Подскажите пожалуйста функцию которая аннулирует двумерный динамический массив. Заранее благодарна.

Функция - шаблон ,параметр - двумерный массив типа Т . - C++
Как правильно прописать в параметры функции двумерный массив типа Т ?(шаблонная функция) Видел формулу преобразования двумерного в...

Функция выводить на печать одномерный и двумерный массив - C++
Написать функции для печати одномерного и двумерных массивов. #include &lt;iostream&gt; #include &lt;Windows.h&gt; using namespace std; ...

Функция для добавления строки в двумерный массив - C++
Помогите написать функцию для добавления в двумерный массив строки


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

Или воспользуйтесь поиском по форуму:
Тамика
Котовчанин
870 / 450 / 143
Регистрация: 16.02.2010
Сообщений: 2,954
Записей в блоге: 27
13.06.2014, 10:05     Функция и двумерный массив #15
uglyPinokkio, ну так может стоит сначала свой вариант предложить, а потом выступать? Жду Вашего предложения, маэстро. И попрошу корректно объяснить "неспортивность" моего кода. Н-ну?
Yandex
Объявления
13.06.2014, 10:05     Функция и двумерный массив
Ответ Создать тему
Опции темы

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