Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Передача в функцию указателя на двухмерный массив


Автор: OlegSK 29.7.2010, 00:09
Как передать в функцию в качестве ее параметра указатель на двухмерный массив, размер которого не известен на этапе компиляции программы? Шилдт в своем справочнике указывает, что если в качестве параметра функции передается указатель на двухмерный массив, то нужно в описании этого параметра указать (константой) хотя бы кол-во столбцов в этом массиве, но вопрос в том: что делать, если мне это не известно?

Автор: djamshud 29.7.2010, 02:09
Код

void foo(int *bar){

}


В bar может быть массив любой размерности, но работать с данными придется в ручную вычисляя смещения.

Код

int array[][3]={{1,2,3},{4,5,6},{7,8,9},{10,11,12}};
int data1=array[i][j];//было

int *buf=(int*)array;
int data2=*(buf+i*3+j));//стало


Добавлено через 26 секунд
Если я в индексах ничего не напутал конечно... Проверяйте сами:).

Автор: OlegSK 29.7.2010, 09:41
djamshud, благодарю за помощь!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)