Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.190.207.144] |
|
Страницы: (2) 1 [2] все ( Перейти к последнему сообщению ) |
Сообщ.
#16
,
|
|
|
не принципиально для данного вопроса, синтаксис тот же, С++ как передать именно такой статический массив там есть решение(9й,12й пост) но это при определенных условиях #include <iostream> typedef int arrayint5x5_t [5][5]; void foo(arrayint5x5_t arr) { for(int i=0;i<5;++i) for(int ii=0;ii<5;++ii) std::cout<<arr[i][ii]<<" "; } int main() { int ar[5][5]; for(int i=0;i<5;++i) for(int ii=0;ii<5;++ii) ar[i][ii]=i*ii+ii; foo(ar); } там есть еще варианты, посмотри |
Сообщ.
#17
,
|
|
|
Если размерность фиксированная (size1 * size2), то так f(Type (&arr)[size2][size1]); или так f(Type (*arr)[size2][size1]); |
Сообщ.
#18
,
|
|
|
Здраствуйте. Подскажите пожалуйста, как передать массив строк, количество которых n? Задал я его динамически таким способом:
char **str; str=(char**)calloc(n,sizeof(char*)); for(int i=0;i<n;i++) str[i]=(char*)calloc(MAX_LEN,sizeof(char)); А передать его в функцию никак не могу..(( Когда пишу вот так: ExcStr(str,n); то Builder ругается: E2034 Cannot convert 'char * *' to 'char ( *)[10240]' E2342 Type mismatch in parameter 'str' (wanted 'char ( *)[10240]', got 'char * *') З.Ы. Эту тему читал полностью, но как передать вот такое, как у меня, к сожалению не понял |
Сообщ.
#19
,
|
|
|
Странный вопрос - компилятор же тебе прямо написал, как переделать:
... ExcStr(char** str, int n); |
Сообщ.
#20
,
|
|
|
Пожалуй самый казуальный способ передачи массива в функцию - это применение структуры
using namespace std; struct MyStruct{ float arr[2][2]; }; void AnyFunc(MyStruct ); int main() { MyStruct a; a.arr[0][0]=1.1; a.arr[0][1]=2.2; a.arr[1][0]=3.3; a.arr[1][1]=4.4; AnyFunc(a); system("pause"); return 0; } void AnyFunc(MyStruct a) { for(int i=0; i<2; i++) for(int j=0; j<2; j++) cout<<a.arr[i][j]<<" : "; cout<<endl; } Никаких указателей, все четко и просто... |
Сообщ.
#21
,
|
|
|
Не самый, но вполне достаточно. Далеко не всегда в цели входит передача копии массива постоянного размера.
|
Сообщ.
#22
,
|
|
|
Цитата Qraizer @ Далеко не всегда в цели входит передача копии массива постоянного размера. Это как это далеко не всегда ? я не в том смысле что наехать, я спрашиваю, обычно передают по: const MyStruct& perem Просот есл иамперсанд убрать бред получица полный, этож будет весь массив скопирован во внутрений объект, я просто не видел случаев на своей практике, когда бы это понадобилось... |
Сообщ.
#23
,
|
|
|
KILLER, я чёт не понял. Ты согласился или споришь?
|
Сообщ.
#24
,
|
|
|
Цитата Qraizer @ KILLER, я чёт не понял. Ты согласился или споришь? Я спрашиваю, нафига передавать структуру с массивом по значению а не поссылке ?? |
Сообщ.
#25
,
|
|
|
Значит согласился.
|