|
11 / 11 / 2
Регистрация: 16.08.2009
Сообщений: 434
|
||||||
Возвращение многомерного массива из функции01.09.2009, 22:01. Показов 35492. Ответов 24
Метки нет (Все метки)
Как вернуть многомерный массив из функции
для обычного массива c использованием указателей это выглядит так
0
|
||||||
| 01.09.2009, 22:01 | |
|
Ответы с готовыми решениями:
24
Возвращение массива из функции Возвращение массива из функции |
|
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
|
|
| 01.09.2009, 22:06 | |
|
создавать и передавать массив как массив указателей на указатели (int**), или указателей на указатели на указатели (int***).
имхо - самый оптимальный вариант.
0
|
|
|
11 / 11 / 2
Регистрация: 16.08.2009
Сообщений: 434
|
||||||
| 01.09.2009, 22:09 [ТС] | ||||||
|
ну а как это в коде записать то?
мне нужны три строчки пототип определение и вызов функции писал так для двумерного массива
пример ошибки cannot convert parameter 1 from 'int [5][15]' to 'int **' если прототип и определение правильные как делать вызов ?
0
|
||||||
|
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
|
|||||||
| 01.09.2009, 22:21 | |||||||
|
это
0
|
|||||||
|
425 / 229 / 87
Регистрация: 25.03.2009
Сообщений: 744
|
||||||
| 01.09.2009, 22:30 | ||||||
0
|
||||||
|
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
|
|
| 01.09.2009, 22:32 | |
|
Андрейка, а чистить за собой?) Я понимаю, что программа сама почистить при завершении.. но это не тру стайл.
0
|
|
|
425 / 229 / 87
Регистрация: 25.03.2009
Сообщений: 744
|
||||||
| 01.09.2009, 22:35 | ||||||
|
на скорую руку =)
0
|
||||||
|
MCSD: APP BUILDER
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
|
||||||
| 01.09.2009, 22:43 | ||||||
|
Как вернуть многомерный массив из функции
по ссылке.
1
|
||||||
| 01.09.2009, 23:02 | ||
|
- имеется массив, нужно вызвать ф-ию, которая наполнит его данными - не имеется ничего, функция его создаст и передаст на него ссылку и размер. вызывающий ответственен за освобождение - ??? собственно, первый вариант, наверное, наиболее предпочтителен. как это записать - не играет большого значения и не имеет большой роли. транслируется это всегда в конструкцию, которая положит массив в вызывающем контексте, и передаст на него указатель в вызове.
0
|
||
|
562 / 373 / 55
Регистрация: 05.04.2009
Сообщений: 767
|
||
| 01.09.2009, 23:06 | ||
|
Rififi подскажи, массив тогда все время жизни программы
будет находится в памяти?
0
|
||
|
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
|
||
| 01.09.2009, 23:31 | ||
![]() Rififi над вами прикалывается, а вы ведетесь
0
|
||
|
MCSD: APP BUILDER
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
|
|
| 02.09.2009, 00:19 | |
|
Rififi над вами прикалывается, а вы ведетесь
а чё сразу прикалывается-то? ((: функция дейвствительно возвращает массив по-ссылке, как и возжелал аффтар :gigi: mirso, массив тогда все время жизни программы будет находится в памяти? поскольку переменная имеет статическое время жизни (как точно сказать по-русски не знаю, короче, static storage duration), то таки да, всё время. Инициализация массива будет выполнена до первого входа в функцию (или во время первого вызова)
2
|
|
|
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
|
||
| 02.09.2009, 00:24 | ||
Массив будет сразу заполнен компилятором (нулями надо полагать) в сегменте данных.
0
|
||
|
MCSD: APP BUILDER
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
|
||
| 02.09.2009, 00:32 | ||
|
odip,
Да не будет никакой инициализации. Массив будет сразу заполнен компилятором (нулями надо полагать) в сегменте данных. чё, правда что ли? :eek: А теперь - правильный ответ: 6.7/4
0
|
||
|
11 / 11 / 2
Регистрация: 16.08.2009
Сообщений: 434
|
|
| 02.09.2009, 00:35 [ТС] | |
|
Monte-Cristo
Андрейка мой код работает как то странно вроде результат и записывает в txt файл тот который я ожидаю но потом все вылетает с ошибкой понять и разобраться с которой я пока не в состоянии А как нить без new delete это можно сделать ? для одно мерного массива я их не использовал Rififi а где в коде прототип определение и вызов функции ? надо что то типо твоего кода что то самое простое без лишних данных просто те три пункта что я написал novi4ok Имееться массив с заранее определенным количеством элементов надо вызвать функцию которая наполнит его данными то есть если совсем конкретно то создаеться массив A[5][15] с нулевыми значениями всех элементов потом он передаеться в функцию f(int **A) (столбцы и строки передавать не нужно они не изменяються и известны заранее) после чего я получаю заполненый двумерный массив A если совсем просто надо передать в функцию двумерный массив A[5][15] c заранее известным количеством элементов и вернуть с одним измененным элементом скажем A[0][0]=100; все больше никаких действий ненужно
0
|
|
|
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
|
|
| 02.09.2009, 00:41 | |
|
Rififi - ну не тормози так
![]() Ключевое слово - "before". Это не значит что прямо перед блоком, заполнение может быть произведенно намного раньше ! Оно все равно будет "before" ! А скорее всего правильный компилятор создаст и заполнит этот массив в сегменте данных еще на этапе компиляции. Linker запихает это все в exe-ник. И к моменту когда программа еще только запустится заполненный статический глобальный или локальный массив уже будет лежать в памяти. Добавлено через 1 минуту 2nill: много слов, а ГДЕ КОД ?
0
|
|
|
MCSD: APP BUILDER
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
|
|||||||
| 02.09.2009, 00:45 | |||||||
|
nill,
а где в коде прототип определение и вызов функции ? строки 1-5 - это прототип и определение. это как в рекламе шампуня от перхоти "два-в-одном" ![]() в строке 7 - вызов надо вызвать функцию которая наполнит его данными заполнить массив, и вернуть его - это не одно и то же для заполнения можно использовать функцию типа такой void fill(int arr[][10]); // для C или
Добавлено через 2 минуты odip, Ключевое слово - "before". Это не значит что прямо перед блоком, заполнение может быть произведенно намного раньше ! Оно все равно будет "before" ! а у меня чё было написано?
0
|
|||||||
|
11 / 11 / 2
Регистрация: 16.08.2009
Сообщений: 434
|
|
| 02.09.2009, 00:49 [ТС] | |
|
Rififi
только ненадо усложнять и так ничего не понятно про заполнение мне пока не нужно знать заполняю я в ручную arr[0][1]=1; и так далее а вопрос мой о возврате измененнного двумерного массива из функции
0
|
|
|
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
|
||
| 02.09.2009, 00:49 | ||
Просто я в посте #13 уточнил где скорее всего будет это место "before". А ты начал из какого-то талмуда фразы приводить с этим "before"
0
|
||
| 02.09.2009, 00:49 | |
|
Помогаю со студенческими работами здесь
20
Возвращение массива из функции Возвращение из функции массива указателей
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|