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

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

Войти
Регистрация
Восстановить пароль
 
regger
Сообщений: n/a
#1

Напечатать двухмерный массив через функцию - C++

17.08.2013, 16:02. Просмотров 290. Ответов 3
Метки нет (Все метки)

Ошибка \main.cpp|26|error: cannot convert 'int (*)[5]' to 'int**' for argument '1' to 'void print(int**, int, int)'|

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
#include <iostream>
 
 
using namespace std;
 
void print(int **mas, int w, int h) {
    for (int i = 0; i < h; i++ ) {
        for (int j = 0; j < w; j++)
            cout << mas[i][j] << ' ';
 
        cout << endl;
    }
}
 
 
int main() {
 
    int mas[3][5] = {
        {10, 11, 12, 13, 14},
        {20, 21, 22, 23, 24},
        {30, 31, 32, 33, 34},
    };
 
    print(mas, 5, 3);
 
    cin.get();
    return 0;
}
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.08.2013, 16:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Напечатать двухмерный массив через функцию (C++):

Передать двухмерный массив в функцию - C++
Допустим, у меня есть двухмерный массив символов char level = { &quot; &quot;, &quot; &quot;, &quot; &quot;, ...

Как передать двухмерный массив в функцию? - C++
Подскажите пожалуйста, как в функцию передать двухмерный массив? Пробовал так: void FuncArr(int** arr){ arr = 111111; } void...

Как в функцию передать параметр - двухмерный массив - C++
void max_el() { int i,j,max; for ( i=1 ; i&lt;=n; i++) for ( j=1; j&lt;=m; j++) //nahodim maksimalnii element...

как передать в функцию двухмерный динамический массив по ссылке - C++
как передать в функцию двухмерный динамический массив по ссылке?

Передать в функцию динамический двухмерный массив с динамическими размерами - C++
Как передать динамический двухмерный массив с динамическими размерами? #include &lt;iostream&gt; #include &lt;stdlib.h&gt; #include &lt;time.h&gt; ...

Написать функцию, которая распечатывает двухмерный массив в виде таблицы. - C++
помогите пож-та.Написать функцию, которая распечатывает двухмерный массив в виде таблицы. Тип элементов массива – целый. язык С++

3
stragger
39 / 39 / 2
Регистрация: 05.12.2011
Сообщений: 343
17.08.2013, 16:15 #2
ну если конкретно для этого случая
C
1
void print(int mas[][5], int w, int h)
А чтобы работать с
C
1
void print(int **mas, int w, int h)
выделение памяти под массив должно происходить динамически
1
OhMyGodSoLong
~ Эврика! ~
1244 / 993 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
17.08.2013, 16:15 #3
Очень мало языков поддерживают настоящие многомерные массивы. Deal with it.
C++
1
2
3
4
5
6
7
8
void print(int *mas, int w, int h) {
    for (int i = 0; i < h; i++ ) {
        for (int j = 0; j < w; j++)
            cout << mas[i * w + j] << ' ';
 
        cout << endl;
    }
}
1
no_wearines
53 / 49 / 2
Регистрация: 01.01.2012
Сообщений: 328
17.08.2013, 17:25 #4
Цитата Сообщение от regger Посмотреть сообщение
Ошибка \main.cpp|26|error: cannot convert 'int (*)[5]' to 'int**' for argument '1' to 'void print(int**, int, int)'|
Вы используете двойную косвенную адресацию. Стандартные массивы (стековые) не так организованы. Для правильной работы:

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
#include <iostream>
#include <conio.h>
using namespace std;
 
void print(int (*mas)[5], int w, int h) {
    for (int i = 0; i < w; i++ ) {
        for (int j = 0; j < h; j++)
            cout << (*(mas + i))[j] << ' ';
 
        cout << endl;
    }
}
 
void main() {
 
    int mas[3][5] = {
        {10, 11, 12, 13, 14},
        {20, 21, 22, 23, 24},
        {30, 31, 32, 33, 34},
    };
 
    print(mas, 3, 5);
 
getch();
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.08.2013, 17:25
Привет! Вот еще темы с ответами:

Напечатать через функцию все трехзначные натуральные числа - C++
Напечатать через функцию все трехзначные натуральные числа, в десятичной записи которых нет двух одинаковых цифр и они упорядочены по...

массив через функцию - C++
дан массив, нужно его сделать через функцию #include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; void summa (double array);...

Массив через функцию - C++
Всем привет!!!Помогите пожалуйста решить задачку!!! Дан массив. Найти номера всех элементов с минимальным и максимальным...

Динамический массив через функцию - C++
int num_char(char *ch) { int i = -1; do { i++; } while(*(ch+i) != '\0'); cout &lt;&lt; endl &lt;&lt; i &lt;&lt; endl; return...


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

Или воспользуйтесь поиском по форуму:
4
Yandex
Объявления
17.08.2013, 17:25
Ответ Создать тему
Опции темы

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