| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Изменение размера массива |
| Автор: Люда 7.5.2002, 11:42 |
| Вот есть такой код: typedef char STRARR[3][10]; void Func(STRARR d); void main() { STRARR q; Func(q); return; } void Func (STRARR d) { ................... } При передаче в ф-цию размерность массива d становиться [10][], а не [3][], почему это происходит и как с этим бороться ? |
| Автор: neutrino 7.5.2002, 12:00 | ||
В определении напиши, что ты передаешь массив с фиксированной длиной второго порядка. Например так:
|
| Автор: Люда 7.5.2002, 12:07 |
| Но мне надо, чтобы сохранялась первая размерность, это возможно? |
| Автор: neutrino 7.5.2002, 14:49 | ||||
Определяешь:
Пишешь функцию:
Здесь уже можно писать [][10]. Если ты хочешь сделать массив строк, то лучше определить как массив указателей на строки. |
| Автор: podval 8.5.2002, 10:26 |
| Neutrino дело говорит! Люда! Лучше никогда не гоняй массивы в функцию. Только указатели! Возьми за правило, и все будет получаться. |
| Автор: Люда 8.5.2002, 13:01 |
| Да с указателями у меня уже все работает, просто у меня есть переменные, являющиеся двумерными массивами и над ними производятся одинаковые действия, вот я и решила не вызывать по сто раз ф-цию, а загнать эти переменные в массив, но ничего хорошего из этого не вышло |