|
26 / 26 / 26
Регистрация: 01.10.2015
Сообщений: 175
|
||||||
Что означает следующее выражение?03.10.2015, 09:28. Показов 1588. Ответов 13
Метки нет (Все метки)
0
|
||||||
| 03.10.2015, 09:28 | |
|
Ответы с готовыми решениями:
13
Указатель: что означает следующее объявление?
Что означает выражение |
|
31 / 31 / 24
Регистрация: 08.06.2015
Сообщений: 107
|
|
| 03.10.2015, 09:38 | |
Сообщение было отмечено Default_070 как решение
Решение
Default_070, функция вернет значение переменной типа двойного указателя на char
1
|
|
|
26 / 26 / 26
Регистрация: 01.10.2015
Сообщений: 175
|
|
| 03.10.2015, 09:40 [ТС] | |
|
Спасибо.
0
|
|
|
3 / 1 / 1
Регистрация: 03.10.2015
Сообщений: 11
|
|
| 03.10.2015, 09:49 | |
|
Ну, так, ты сам же и ответил. Это сделано потому, что массивы создаются динамически. А как иначе вернуть этот массив вызывающему коду?
Добавлено через 4 минуты Функция вернёт указатель на массив указателей. И указатели этого массива сами по себе будут массивами - будут содержать строки.
0
|
|
|
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
|
||
| 03.10.2015, 09:52 | ||
|
нет такого типа, как двойной указатель. Есть указатель на указатель.
Функция вернет такой указатель, который указывает на указатель, указывающий на char. функция вернет указатель, указывающий на такой указатель, который указывает на начало массива символов, а не на массив указателей.
1
|
||
|
26 / 26 / 26
Регистрация: 01.10.2015
Сообщений: 175
|
|
| 03.10.2015, 09:52 [ТС] | |
|
Да, как-то не задумался над возвращаемым значением и моим вопросом. Получается я ответил сам не осознавая этого.
0
|
|
|
3 / 1 / 1
Регистрация: 03.10.2015
Сообщений: 11
|
||
| 03.10.2015, 10:18 | ||
|
Хотя делать так никто и не запрещает, но какой в этом смысл? Добавлено через 15 минут Если развернуть ответ подробнее то локальные переменные(созданные внутри функции) удаляются из памяти сразу после выхода из функции, то есть сразу после того как функции закончила свою работу. Так как эти переменные создаются в стеке Си или С++. Не путать с аппаратным стеком процессора. Динамические же переменные создаются в так называемой "куче" (мне не нравится этот термин). И они там будут существовать до тех пор пока программа сама их не удалит, или же до тех пор пока программа не завершит свою работу. Динамически создавая массив ты имеешь доступ к нему только через указатель, этот указатель единственная вещь которая связывает созданные данные с твоей программой. Если вдруг по ошибке или ещё как, ты переназначишь этот указатель на другой блок данных, то первоначальный блок данных будет потерян. Хотя и останется в памяти до самого завершения работы программы.
0
|
||
|
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
|
|||||||
| 03.10.2015, 11:13 | |||||||
|
Кликните здесь для просмотра всего текста
0
|
|||||||
|
3 / 1 / 1
Регистрация: 03.10.2015
Сообщений: 11
|
||
| 03.10.2015, 11:26 | ||
|
Разве нет ? Да и ты сам подтверждаешь это своим примером. Просто надо будет создавать простой указатель, а, не указатель на указатель.
0
|
||
|
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
|
||
| 03.10.2015, 11:37 | ||
|
В моем примере нет массива.
У ТС есть двумерный массив. Память для него выделяется внутри функции, а очищается вне функции. Чтобы корректно почистить память вне функции, нужно узнать этот адрес вне функции. Чтобы узнать адрес вне функции от массива созданного внутри функции, можно вернуть указатель на начало массива. Вот и верни не указателем на указатель этот адрес из функции. Добавлено через 3 минуты Опечатка
0
|
||
|
3 / 1 / 1
Регистрация: 03.10.2015
Сообщений: 11
|
|||
| 03.10.2015, 11:43 | |||
|
0
|
|||
|
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
|
|
| 03.10.2015, 11:57 | |
|
Указатель на массив указателей
void ***ptr; //с соответствующим выделением памяти. Массив указателей void **ptr //с соответствующим выделением памяти. Указатель *ptr
0
|
|
|
3 / 1 / 1
Регистрация: 03.10.2015
Сообщений: 11
|
|||||||||||
| 03.10.2015, 12:34 | |||||||||||
|
Это всё понятно.
Для указателя на указатель это то что нужно было топикстартеру, насколько я понял
по твоему описанию, где всё будет упаковано в одну длинную строку
И вся суть спора была в том что если делать так как ты описываешь то двойной указатель не нужен.
0
|
|||||||||||
|
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
|
||
| 03.10.2015, 12:45 | ||
|
Не по теме: freeworker, мои претензии к _______________ Это не я описываю. Это у ТСа написано так. Я не ТС. он спросил зачем нужно - я показал. Добавлено через 3 минуты Не по теме: Может у него массив слов. Он функцию не показывал.
0
|
||
| 03.10.2015, 12:45 | |
|
Помогаю со студенческими работами здесь
14
Что означает данное выражение y%=16
Подскажите что означает это выражение Битовые операции, что означает выражение
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|