![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Dika |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 19.10.2011 Репутация: нет Всего: нет |
Есть функция, в нее передаю строку unsigned char*, в функции присваиваю значение, внутри функции значение есть, а по выходу - нули.
Прилагаю картинку результата работы программы |
|||
|
||||
| Dika |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 19.10.2011 Репутация: нет Всего: нет |
упростила программу, чтоб было наглядней
в функции значения есть, на выходе нули. Если использовать strcpy(), даже в функции значения не копируются. Что-то не пойму, где ошиблась. Добавлено через 10 минут и 34 секунды buf - это у меня указатель на массив request - тоже указатель на массив, в теле функции указателю request я присваиваю значение адреса указателя buf. о выходе из функции, этот адрес теряется и request никуда не указывает. Так? а как сделать, чтоб значения сохранились? |
|||
|
||||
| FCM |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 461 Регистрация: 30.3.2009 Репутация: нет Всего: 9 |
Относительно упрощенного варианта:
А что тебе нужно в функции - изменить значение адресата передаваемого указателя-аргумента или перенаправить указатель-аргумент на новый адресат (т.е. изменить значение указателя)? Если второе, то сам указатель должен передаваться по адресу, а на выходе из функции указывать на существующий(после выхода из функции) объект. Если первое, то тебе нужно просто копировать внутри функции адресаты - упрощенно что-нить типа for(int i=0; i<6; i++) request[i]=buf[i]; (или напрямую править адресат указателя-аргумента, не вводя никаких buf) Т.е. при первом намерении, вариант со strcpy идеологически правильный, но не компилируется, т.к. strcpy требует char*, а не unsigned char*. Возможно, проблема со strcpy решается приведением к нужному типу. Это сообщение отредактировал(а) FCM - 29.8.2012, 18:58 |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |