Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.10.2011, 11:06   #1
max_prorok
Форумчанин
 
Регистрация: 06.10.2011
Сообщений: 181
По умолчанию Возврат массива из функции

Суть проблемы такова. Пишу программку для аджилиентского вольтметра. Суть такова: чтение производится с помощью функции в массив char, и необходимо вытащить этот массив. Что-то типо того:
--------------------------------------------------------------------------
char izmer()
{
ibonl(zndev,1); //подключение к вольтметру
ibwrt(zndev,"READ?",5); //запрос на считывание напряжение
ibrd(zndev,izm,20); //запись напряжения в char izm[20]
ibloc(zndev); //отключение вольтметра
//функции с вольтметром правильные и считывается инфа полностью
return *izm;
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
*chan2=izmer();
Form1->Memo3->Text=chan2;
Form1->Refresh();
}

--------------------------------------------------------------------------
На выходе в Мемо3 появляется только один первый символ (+ или -) и все. Помогите пожалуйста разобраться с проблемой.
max_prorok вне форума Ответить с цитированием
Старый 06.10.2011, 12:04   #2
KobolD
Форумчанин
 
Регистрация: 10.06.2010
Сообщений: 239
По умолчанию

Это потому что ты возвращаешь указатьль на массив, а точнее на его первый элемент. Тебе помимо самого указателя надо возвращать еще и длинну (количество элементов) массива, пложим n. Потом делаешь
Код:
*chan2=izmer();
string Tmp;
for(int i=0,i<n,i++)
     Tmp+=chan2[i]+" "; (разделяем значения пробелами)
Form1->Memo3->Text=Tmp;
Код может быть не верный, т.к. я в С++ работаю, но суть должна быть ясна
Чтобы слова не расходились с делом, нужно молчать и ничего не делать.
KobolD вне форума Ответить с цитированием
Старый 06.10.2011, 12:39   #3
max_prorok
Форумчанин
 
Регистрация: 06.10.2011
Сообщений: 181
По умолчанию

Вроде как сделал как указал, но все равно выводит только первый символ на экран. Сейчас попробую код немного переписать. Сделать функцию void, в которой значение будет записываться в глобальную переменную. А потом выводит ее на экран.
P.S. Я тоже в С++ работаю (Билдер).
max_prorok вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Возврат 2 и более аргументов из функции. Drilla Microsoft Office Excel 2 18.09.2011 14:11
c++ возврат указателя из функции Neolit1819 Помощь студентам 6 28.03.2011 15:37
Мини бэйсик:объявление функции, вызов функции , возврат. AL_LORD Помощь студентам 2 14.10.2010 17:48
Возврат массива значений в функцию main. sadf Общие вопросы C/C++ 5 03.03.2010 21:32
Как сделать возврат из функции VladimirVB Общие вопросы Delphi 5 28.08.2009 15:03