2015-02-07 2 views
0

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

Код:

void multi_deimensional_array_printing(int *(ref)[5], int size){ 

for (int *(ia)[5]{ref}; ia != ref + 5; ++ia) {// prob 
    for (int rowsize{0}; rowsize != size; ++rowsize) { 
     std::cout << rowsize << " "; 
    } 
} 

}

+0

У вас есть пример кода, который вы попытку? – TriHard8

+0

минус 1 для сброса ссылок. –

+0

минус голосование втянуто. –

ответ

2
std::cout << rowsize << " "; 

вы хотите, чтобы показать, что в массиве не там, где вы находитесь в массиве. Так что, если вы сейчас не сколько я там вы можете сделать: недействительным multi_deimensional_array_printing (интермедиат ** исх, Int размер) {

for (size_t i = 0; ref[i] != NULL ; ++i) { 
    for (size_t a = 0; a < size; ++a) { 
     std::cout << ref[i][a] << " "; 
    } 
    std::cout << std::endl; 
    } 
} 

и в вашем случае:

void multi_deimensional_array_printing(int *(ref)[5], int size){ 

    for (size_t i = 0; i < 5 ; ++i) { 
    for (size_t a = 0; a < size; ++a) { 
     std::cout << ref[i][a] << " "; 
    } 
    std::cout << std::endl; 
    } 
} 
0

You может получить массив по ссылке и вывести экстентов с помощью аргумента шаблона вывод:

Live On Coliru

#include <iostream> 

template <typename T, size_t N, size_t M> 
void print(T (&arr)[N][M]) { 
    for (size_t i = 0ul; i<N; ++i) { 
     for (size_t j = 0ul; j<M; ++j) 
      std::cout << arr[i][j] << " "; 
     std::cout << "\n"; 
    } 
} 

int main() { 
    int a[][3] = { 
     { 1,2,3 }, 
     { 4,5,6 }, 
    }; 

    print(a); 
} 

Печать

1 2 3 
4 5 6 
Смежные вопросы