Передача Двумерного Массива В Функцию

Тема в разделе "Общие вопросы по С и С++", создана пользователем Shmaximus, 15 сен 2014.

  1. Shmaximus

    Shmaximus New Member

    Регистрация:
    4 сен 2014
    Сообщения:
    4
    Симпатии:
    0
    Как я знаю, имя массива и указателя тождественны в С++. Из этого следует, что можно инициализировать указатель, а работать с ним, как с именем массива, добавив индекс (квадратный скобки) или смещение к имени массива и круглые скобки со звёздочкой... Но не в этом суть. Я пробовал ввести передачу в функцию двумерного массива (столбы и строки) - не вышло. Очевидно, что где-то вкралась ошибка.
    Вот код:
    Код cpp:<!--shcode--><pre><code class='CODE'>#include "stdafx.h"
    #include <iostream>

    using namespace std;

    const int size1 = 3;
    const int size2 = 4;
    int arr[size1[size2 = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};
       
    void arr_fun (int arr[[size2, int size1);

    void main ()
    {
        arr_fun (arr[[size2, size1);
        system ("pause");
    }
    void arr_fun (int arr[[size2, size1)
    {
        for (int i=0; i<size1; i++)
        {
            for (int j=0; j<size2; j++)
            {
        cout<<"arr["<<i<<": "<<arr[i[j<<endl;
            }
        }
    }[/CODE] Хотя бы дайте общие понятия по логике передачи адреса двух- и более мерного массива в функцию, а дальше, я сам попробую написать =)
     
  2. ivashovLEX

    ivashovLEX New Member

    Регистрация:
    5 авг 2014
    Сообщения:
    4
    Симпатии:
    0
    Существует несколько способов передачи двумерных массивов: это могут быть двойные указатели, структурированные массивы, представление одномерного массива как двумерного и др.
     
  3. Veselk

    Veselk New Member

    Регистрация:
    9 авг 2014
    Сообщения:
    3
    Симпатии:
    0
    Вот примерно так это можно реализовать...

    Код cpp:<!--shcode--><pre><code class='CODE'> const int size1 = 3;
     const int size2 = 4;
     int arr[size1[size2 = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};
     int* arr_ptr[size1 = {arr[0, arr[1, arr[2};

     void arr_func (int* ptr[, int size);

    int main(int argc, char* argv[)
    {
        arr_func(arr_ptr, size1);
        return 0;
    }

     void arr_func (int* ptr[, int size)
     {
         for (int i = 0; i < size; i++)
         {
             for (int j = 0; j < size2; j++)
             {
                 int a = ptr[i[j;
                 printf("%d, ", a);
             }
             printf("\n");
         }
     }[/CODE]
     
Загрузка...
Похожие Темы - Передача Двумерного Массива
  1. Negent
    Ответов:
    3
    Просмотров:
    1.335
  2. Corexis
    Ответов:
    0
    Просмотров:
    66
  3. Shouldercannon
    Ответов:
    0
    Просмотров:
    485
  4. Shouldercannon
    Ответов:
    0
    Просмотров:
    385
  5. 123456789igor
    Ответов:
    0
    Просмотров:
    804

Поделиться этой страницей