0 / 0 / 0
Регистрация: 01.08.2015
Сообщений: 2
|
||||||
1 | ||||||
Как заставить подфункцию выдать обработанный массив?01.08.2015, 18:19. Показов 743. Ответов 9
Метки нет (Все метки)
Имеется программа, суть которой - обработать массив с данными; основной рабочий кусок содержит две вложенных функции - procedure1 и procedure2:
0
|
01.08.2015, 18:19 | |
Ответы с готовыми решениями:
9
Не получается вывести обработанный массив Вывести обработанный массив на экран Операции побитового сдвига - обработанный массив необходимо снова разложить на цвета Выполнить пузырьковую сортировку массива по возрастанию и вывести исходный массив обработанный на экран |
117 / 121 / 42
Регистрация: 25.08.2012
Сообщений: 1,294
|
|
01.08.2015, 19:11 | 2 |
me262, me262, у вас трехмерный массив, ну в списке параметров так и указывайте: void proc1(..., mas[][][], /* а вот здесь размеры измерений, это обязательно */). Возвращать ничего не надо: все изменения, сделанные в функции, сохраняются, поскольку компилятор неявно преобразует (вроде бы) массив в указатель.
Добавлено через 6 минут Подождите чутка, кажется, это неверно
0
|
117 / 121 / 42
Регистрация: 25.08.2012
Сообщений: 1,294
|
||||||
01.08.2015, 19:29 | 4 | |||||
Если верить Страуструпу, такк многомерные массивы передавать нельзя. Сделайте так:
Поправка: в индексации наоборот пишите. Т.е. mas[i * three * three + j * two + k]. Попробуйте оба варианта, на всякий случай
0
|
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||
01.08.2015, 20:50 | 6 | |||||
http://rextester.com/CARS96696
0
|
0 / 0 / 0
Регистрация: 01.08.2015
Сообщений: 2
|
|||||||||||
02.08.2015, 05:33 [ТС] | 7 | ||||||||||
castaway
В ответ на такой код
C:\test\test.c(19) : error C2143: syntax error : missing '{' before '<' C:\test\test.c(19) : error C2059: syntax error : '<' P.S. И еще, пожалуйста когда пишете код - хоть чуть-чуть пояснений что есть что. Например, в случае с template я не понял, К N M - это конкретные размеры моего масива - 700 1000 1000, arr - имя массива, а foo - название моей функции? tnk500 Вы предлагаете мне заменить многомерный массив одномерным со сдвигом, так? Но даже если я пытаюсь объявить в функции простой одномерный массив, вот так:
C:\test\test.c(36) : error C2115: 'function' : incompatible types
0
|
Заблокирован
|
||||||
02.08.2015, 05:51 | 8 | |||||
оба способа передачи/"возврата" массива работают
0
|
Модератор
13502 / 10754 / 6409
Регистрация: 18.12.2011
Сообщений: 28,698
|
|
02.08.2015, 08:19 | 9 |
Компилироваться то оно может и будет, но массив mas[700][1000][1000] в стек не поместиться и программа завершиться аварийно.
Объявите этот массив глобальным, тогда и проблемы со стеком не будет и передавать его в функции не надо.
0
|
02.08.2015, 12:09 | 10 |
0
|
02.08.2015, 12:09 | |
02.08.2015, 12:09 | |
Помогаю со студенческими работами здесь
10
Как сохранить обработанный текст в один файл? Как сохранить обработанный текст из файла в другой файл? Как заставить массив превратиться в указатель? Как заставить сайт написанный на 5.3 заставить работать на 5.6? Как принудительно включить register_globals? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |