2015-12-12 2 views
0

Я как бы начинаю на C++, просто для программирования в PHP и JAVA, у меня есть проблема, чтобы сделать указатель на 2d-массив, а затем использовать этот указатель в разных значениях функции и cout [0 ] и [1].Указатель двумерного массива для функции C++

Есть часть моего сценария.

int size_dd = 5; 
    int dd[size_dd][2]; 

    for (int i = 0; i < size_dd; i ++) 
    { 
     dd[i][0] = 2 * i + 10; 
     dd[i][1] = 4 * i + 20; 
    } 

я могу читать дд [я] [0] в основной функции, но я не могу назвать их в функции чтения (INT * twodarray), так как она возвращает Int [INT] и второй параметр из массива теряется ,

Дело в том, что мне нужно сделать указатель на этот массив и называть его другой функцией.

Но проблема в том, что я обрабатываю функцию * dd в функции, она возвращает, что dd является значением int [int] вместо int [int] [int], как я могу его разрешить?

+0

Покажите нам главную функцию и функцию чтения. – Michi

+1

C не C++ не C! – Olaf

+0

И указатель не является массивом. – Olaf

ответ

1

Ваша функция должна иметь следующие подписи:

void fooByPtr(int(*arr)[5][6]) { 
    (*arr)[4][4] = 156; 
} 

// Call ex: 
int dd[5][6]; 
fooByPtr(&dd); 

Вы также можете сделать это со ссылкой и шаблон:

void fooByRef(int (&arr)[5][6]) { 
    arr[4][4] = 156; 
} 

template<int N, int M> 
void fooByRefTempl(int(&arr)[N][M]) { 
    arr[4][4] = 156; 
} 

Некоторые другие комментарии к вашему коду (а также один из комментариев):

Вы можете создавать массивы с использованием постоянных значений в качестве размеров, поэтому это неверно:

int size_dd = 5; 

и должно быть:

const int size_dd = 5; 

в вашем fun_call вы должны разыменовать ваш массив: (*dwu_wymiar) перед индексированием его.

, наконец, сменить funCall(int(*dwu_wymiar)[][2], на int(*dwu_wymiar)[5][2], как в моем примере выше.

+0

@Potar У меня есть обновленный ответ, но он должен только исправить ошибки компиляции, и ваш код будет работать как ожидалось .... – marcinj

+0

Кажется, что он работает сейчас, я проверю свои функции благодаря! – WinterTime

Смежные вопросы