|
0 / 0 / 0
Регистрация: 05.03.2023
Сообщений: 17
|
||||||
Передача динамического массива в функцию05.03.2023, 16:36. Показов 1964. Ответов 28
Метки нет (Все метки)
Не могу правильно передать массив в функции. В main происходит оглашение указателя на массив int* p и его длину int N; в scan происходит выделение памяти под этот массив. Функция print не может вывести массив на экран (такое ощущение, что она выводит пустой массив). Если вставить промежуточную печать в scan, то массив спокойно выводится.
0
|
||||||
| 05.03.2023, 16:36 | |
|
Ответы с готовыми решениями:
28
Передача динамического массива в функцию Передача динамического массива в функцию Передача динамического массива в функцию |
|
И тут вот те нате
322 / 209 / 117
Регистрация: 12.07.2016
Сообщений: 555
|
||||||
| 07.03.2023, 22:57 | ||||||
|
Hats, убрал вам предупреждения
Также, дополнительные проблемы приносят "вложенные" указатели, по типу int** pp;. Для работы с массивами любых размерностей ( T arr[X][Y][Z][...]..[..]; ) достаточно в функции принимать их как T* arr и обращаться через *(arr+x) = ... ; Тут в теме мы это подробно разбирали: Передача матрицы в функцию
0
|
||||||
|
0 / 0 / 0
Регистрация: 05.03.2023
Сообщений: 17
|
||
| 07.03.2023, 23:49 [ТС] | ||
0
|
||
|
И тут вот те нате
322 / 209 / 117
Регистрация: 12.07.2016
Сообщений: 555
|
|||||||||||
| 08.03.2023, 00:24 | |||||||||||
Сообщение было отмечено Hats как решение
Решение
Hats, я вас понял, исправления первого уровня вашу задачу не решили. Попробуем снова?
![]()
Кликните здесь для просмотра всего текста
Добавлено через 2 минуты Про указатель на указатель я вам вредный совет дал, в данном случае они нужны (значение указателя по-другому в функции не получится изменить, а оно должно меняться т.к. есть вызовы realloc)
2
|
|||||||||||
|
0 / 0 / 0
Регистрация: 05.03.2023
Сообщений: 17
|
||
| 08.03.2023, 11:56 [ТС] | ||
Еще раз спасибо!
0
|
||
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
||||
| 08.03.2023, 13:50 | ||||
|
Но совет твой учту. В ом смысле, что горбатого могила исправит. Не по теме: Бабушка, не дадите ли водицы напиться, а так есть хочется, что даже ночевать негде.
1
|
||||
|
0 / 0 / 0
Регистрация: 05.03.2023
Сообщений: 17
|
||||||||||||||||||
| 09.03.2023, 15:27 [ТС] | ||||||||||||||||||
|
Добавлено через 33 минуты
0
|
||||||||||||||||||
|
И тут вот те нате
322 / 209 / 117
Регистрация: 12.07.2016
Сообщений: 555
|
|||||||
| 09.03.2023, 16:35 | |||||||
К функции scan требования другие - она должна изменять сам адрес начала массива (до вызова функции он NULL, а после должен быть валидным), а также количество элементов N в массиве. Чтобы мы могли менять значения, нам нужны их адреса, в противном случае мы будем менять только копии значений в функции, что нас не устраивает. Поэтому в scan появляется указатель на указатель и указатель на размер массива. По поводу строки *pp = (int*) malloc(*pN*sizeof(int));. pp - это указатель на указатель на int, или int**. Функция malloc возвращает указатель, который мы приводим к типу int*. Для успешного присваивания типы значений слева и справа должны совпадать, у нас же сейчас int** = int* Чтобы из int** получить int*, нужно разыменовать указатель pp, так мы и получаем *pp
2
|
|||||||
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
|
| 09.03.2023, 16:50 | |
|
Evgen173, об о всем об этом уже было тылдычено на протяжении 26 постов (4-х дней). Но моих слов ТС не понял. Может быть твои поймет? Дай-то Бог!
0
|
|
|
0 / 0 / 0
Регистрация: 05.03.2023
Сообщений: 17
|
|
| 10.03.2023, 02:32 [ТС] | |
|
Спасибо, примерно понял. Со временем с оптом думаю придет полное понимание. Всем спасибо!
0
|
|
| 10.03.2023, 02:32 | |
|
Передача двухмерного динамического массива в функцию Передача динамического двухмерного массива в функцию
Передача динамического массива как аргумент функции
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет!
За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|