Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
diplomat1129
0 / 0 / 0
Регистрация: 11.02.2013
Сообщений: 83
#1

Передать из функции массив байт - C++

02.06.2014, 10:10. Просмотров 284. Ответов 3
Метки нет (Все метки)

Сама функция
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
unsigned char* receive(int size=512)
{
    vector<byte> resBuffer;
    unsigned char buffer[4];
    int res;
    //Receive a reply from the server
    res = recv(sock , &buffer , sizeof(unsigned char) , 0);
    if( res < 0)
    {
        puts("recv failed");
    }
    //cout<<(int)*buffer;
    //resBuffer.insert(resBuffer.end(), buffer, buffer + size);
    return buffer;
    //return resBuffer;
}
здесь принимаю значение функции
C++
1
2
3
unsigned char buffer[size];//tmpBuff = Client.receive();
                    *buffer = Client.receive(sizeof(int));
                    cout<<(int)*buffer;
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.06.2014, 10:10     Передать из функции массив байт
Посмотрите здесь:

передать массив с функции в main() C++
Dызовом родовой функции! Нужно передать массив в качестве аргумента функции через указатель." C++
C++ Передать массив структур функции
Как передать функции массив в качестве аргумента? C++
C++ Как передать массив в функции
C++ Передать двумерный массив функции
C++ Как передать массив из одной функции в другую?
C++ Передать ссылку на массив из одной функции во вторую
Передать массив чисел типа Int функции C++
Передать массив в функцию и вернуть из функции C++
Как в качестве аргумента функции передать массив? C++
C++ Как передать двумерный массив функции?

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,994
02.06.2014, 10:35     Передать из функции массив байт #2
вы создаёте массив в функии, и возвращаете на него указатель, но он будет удалён после вызова функции, вам надо передавать сам массив в функцию по ссылке, видоизменять его там, после чего возвращать его же.

Добавлено через 1 минуту
Цитата Сообщение от diplomat1129 Посмотреть сообщение
*buffer = Client.receive(sizeof(int));
а здесь вы в 1ый элемент пытаетесь записать char* , что тоже ошибочно, если хотите присвоить адрес то просто buffer = //лялялl;
zss
Модератор
Эксперт С++
 Аватар для zss
6122 / 5725 / 1851
Регистрация: 18.12.2011
Сообщений: 14,629
Завершенные тесты: 1
02.06.2014, 11:53     Передать из функции массив байт #3
Проще записать его в параметр
C++
1
2
3
4
5
6
7
8
9
10
11
bool receive(unsigned char* buffer,int size=512)
{
    vector<byte> resBuffer;
    int res;
    res = recv(sock , &buffer , sizeof(unsigned char) , 0);
    if( res < 0)
    {
        return false;
    }
    return true;
 }
diplomat1129
0 / 0 / 0
Регистрация: 11.02.2013
Сообщений: 83
02.06.2014, 12:34  [ТС]     Передать из функции массив байт #4
здесь же я передаю в параметр указатель типа байт на 1 элемент?мне должно 4 байта прийти..т.е. мне надо передать массив байт и заполнить его ответом в итоге получу 4 число типа инт
Yandex
Объявления
02.06.2014, 12:34     Передать из функции массив байт
Ответ Создать тему
Опции темы

Текущее время: 21:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru