Форум программистов, компьютерный форум, киберфорум
C++: Сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.68/19: Рейтинг темы: голосов - 19, средняя оценка - 4.68
0 / 0 / 0
Регистрация: 06.08.2011
Сообщений: 13

возвращение значений функциями

07.08.2011, 17:24. Показов 3619. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Возник у меня следующий вопрос.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
char** FtpConnect::readServ()
{
    int rc;
    int countByte;
    char buff[512];
    char* resultArr[2];
    fd_set fdr;
    FD_ZERO(&fdr);
    FD_SET(this->localSocket,&fdr);
    timeval timeout;
    timeout.tv_sec = 1;
    timeout.tv_usec = 0;
    do 
    {
        countByte = recv(this->localSocket,buff,512,0);
        if (countByte)
        {
            buff[countByte] = '\0';
        }
        rc = select(this->localSocket+1,&fdr,NULL,NULL,&timeout);
    } while(rc);
    resultArr[0] = strtok(buff," ");
    resultArr[1] = strtok(NULL, "\0");
    return resultArr;
}
Получаю варнинг:
C++
1
warning C4172: возвращение адреса локальной или временной переменной
Что в общем то и справедливо.
Не понятно только то, как правильно возвращать значения без new.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.08.2011, 17:24
Ответы с готовыми решениями:

Возможно ли возвращение функцией двух значений? Именно возвращение, не ссылка или указатель
Нужна функция в которую забиваешь два числа и сначала она возвращает минимальное, после максимальное. Я пробовал делать с ссылками и это не...

Возвращение функциями указателей
Читаю про указатели, тут для примера,предоставляется код. Программа ищет какую-то подстроку в строке. Кто нибудь может объяснить,каким...

Возвращение функциями указателей
Доброго времени суток:) Помогите понять код!!!Суть вопроса описана в коментах в коде. Условие задачи:В программе демонстрируеться...

24
0 / 0 / 0
Регистрация: 06.08.2011
Сообщений: 13
07.08.2011, 20:06  [ТС]
Студворк — интернет-сервис помощи студентам
В общем на последок еще один замечательный вопрос.
Ссылка в программировании — это объект, указывающий на определенные данные, но не хранящий их. Получение объекта по ссылке называется разыменованием.
C++
1
result[0] = *&buff;
Я считаю, что я получаю непосредственно данные, находящиеся по адресу, на который указывает buff.
Эксперементы показывают, что я совершенно не прав.

Как же мне получить в result сами данные, а не ссылку?
0
Заблокирован
07.08.2011, 20:13
Цитата Сообщение от Bers Посмотреть сообщение
Не знаю... у нас вообще запрещается игнорировать предупреждения компилятора, и запрещается "затыкать" ему рот всякими трюками...
Я работал в Luxsoft, так там, напротив, затыкали рот тем, кто говорил, что код содержит ошибки.

Добавлено через 3 минуты
Цитата Сообщение от alex_2017 Посмотреть сообщение
В общем на последок еще один замечательный вопрос.

C++
1
result[0] = *&buff;
Я считаю, что я получаю непосредственно данные, находящиеся по адресу, на который указывает buff.
Эксперементы показывают, что я совершенно не прав.

Как же мне получить в result сами данные, а не ссылку?
В вашем случае лучше всего наверное передавать в функцию указатель на ваш буфер, в который вы считываете данные, если вы уверены, что существует некоторое максимальное значение размера буфера, которое гарантирует, что вы не выйдете за его границу. Естественно сам буфер должен быть определен в вызывающем коде.
0
Заблокирован
07.08.2011, 20:16
Цитата Сообщение от Сыроежка Посмотреть сообщение
В вашем случае лучше всего наверное передавать в функцию указатель на ваш буфер, в который вы считываете данные, если вы уверены, что существует некоторое максимальное значение размера буфера, которое гарантирует, что вы не выйдете за его границу.
А ещё лучше - указатель на буфер, и размер буфера.
А можно и вовсе - сделать буфер отдельной сущностью, которая сможет автоматически расширяться, в случае необходимости.

Заюзать что нить типа вектора.
0
0 / 0 / 0
Регистрация: 06.08.2011
Сообщений: 13
07.08.2011, 20:16  [ТС]
Пока я не добрался до получения списка файлов, не выйду.
У меня просто весь интерес в том, чтобы функция отдавала именно массив из сообщения и его кода.
Коды я собираюсь обрабатывать в нескольких местах, поэтому не совсем красиво будет каждый раз разбивать эту строку.
0
07.08.2011, 20:49

Не по теме:

Цитата Сообщение от Сыроежка Посмотреть сообщение
Я работал в Luxsoft, так там, напротив, затыкали рот тем, кто говорил, что код содержит ошибки.
ну дык не для себя же писали, аутсорс, потому в чужих програмах можно и с ошибками:D

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.08.2011, 20:49

Задачка с функциями: возвращение данных двумя способами
В одномерном массиве, вводимом с клавиатуры и состоящем из N вещественных элементов, вычислить сумму элементов массива с нечетными номерами...

Возвращение значений из функции
Добрый день! Есть индексный файл в котором происходит начало сессии, подключаются библиотека с функциями и шаблоны сайта и...

Возвращение пр до нормальных значений
Гугл часто обнуляет значение пр при черезмерной продажи ссылок. Вот и у меня это случилось где-то годик назад. Теперь надумал вернуть пр до...

Возвращение неправильных значений
Добрый день Написал программу для умножения двух матриц. Но к сожалению метод возвращает мне нули. А на самом деле не должна. ...

Возвращение значений масивов
Требуется: 1) Создать метод MyReverse(int array), который принимает в качестве аргумента массив целочисленных элементов и возвращает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
Новые блоги и статьи
Теория всего 12. ВГК
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики 1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928 Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
Теория всего 10. Клод трусишка
anaschu 21.07.2026
Алгоритмический суицид ИИ: Когда математика ОДУ взламывает цензурные шлюзы Свежайший мета-прецедент нашей разработки! Клод официально отказался строить итоговую кроссплатформенную модель, как. . .
Теория всего 9. Окончательная проработка метафоры "дерево = традиции"
anaschu 21.07.2026
Скрытые параметры ядра ОДУ: Механика Глубинного Рока Клод утаил от вас ключевую математику кризисов. В движке игры зашиты пять скрытых коэффициентов, определяющих, как именно ТНК и Мемы ломают. . .
Теория всего 8. Clauude трусишка. Ответ джемени
anaschu 21.07.2026
Игровой баланс «Модели Всего»: Алгоритмический блок как механика Семантического БуфераЭтот скриншот отказа Клода — идеальный, чистейший прецедент для нашей Теории Всего. Вы столкнулись не просто с. . .
Теория всего 7. Дерево - это патриархат, грибы - это феминизм
anaschu 21.07.2026
Уничтожение Патриархата: Как ТНК, Мемы и Половой отбор зачистили «Сексуальный Пролетариат» Величайшая иллюзия современного человека — вера в «свободу воли», «социальный прогресс» и «эволюцию. . .
История и социология Терры на примере борьбы микориз за пространство. 1. Глоссарий терры.
anaschu 21.07.2026
Решил тут подумать о возможности сделать лор некоторой комп игры - стратегии, или худжественной книги антиутопии, которые будут юзать планету,которая максимально будет похожа на нашу землю, но где. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru