Цитата(dxp @ Jan 29 2007, 19:36)

Здесь передается не массив, а структура:
void fun(array_as_param param), где array_as_param - это структура (как видно выше)
Цитата(prottoss @ Jan 29 2007, 19:02)

Здесь в качестве параметра передается ИМЕННО МАССИВ

, НО выдаем мы его за структуру

Еще раз. Функция: void fun(array_as_param param), array_as_param - это структура, значит в функцию передается
структура. У Вас формируется временный объект (в стеке) типа
структура, который инициализируется значениями из массива. И передается структура. И внутри функции мы видим и тоже структуру. То, что Вы "выломали руки" компилятору своими насильными преобразованиями типов, ситуации не меняет. Это все, кстати, очень
bad style и чревато прекрасными глюками при выравнивании. Про переносимость я вообще молчу. Яркий пример как никогда не надо писать код. Уж извините, но это так.
Цитата(dxp @ Jan 29 2007, 19:36)

А код этот некрасивый, как и почти любой другой код, где используется ручное преобразование типов. Гораздо лучше, прозрачнее, логичнее и безопаснее было бы написать:
aray_as_param s = array1; fun(s);
Цитата(prottoss @ Jan 29 2007, 19:02)

Вы хоть сами то читаете и проверяете то что пишите??? Эта строчка никогда работать не будет. Ну а так, вообще, красиво написанно

Может быть Вы имели ввиду это
Код
aray_as_param *s = (aray_as_param *)array1; fun(*s);
Нет, я имел в виду вот что:
Код
const int C_Size = 100;
struct array_as_param
{
array_as_param(const char* const a)
{
for(int i = 0; i < C_Size; i++) array[i] = a[i];
}
char array[C_Size];
};
array_as_param s = array1; fun(s);
Сожалею, что не догадался сразу конкретизировать, думал, что идея ясна: заменить насильные преобразования типов на операции, определенные пользователем.
Цитата(prottoss @ Jan 29 2007, 19:02)

Цитата(dxp @ Jan 29 2007, 19:36)

Вопрос стоял о том, как передать массив по значению в качестве аргумента.
Ответ получен - МОЖНО
По аргументу реально передан не
массив, а
структура, что и есть верный ответ. С тем же, что есть способ передать значения массива в функцию, никто не спорил изначально. И даже показано более читабельное и безопасное решение.