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

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

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.11.2009, 22:50   #1
shurik_7866
Пользователь
 
Регистрация: 07.02.2007
Сообщений: 50
По умолчанию вопрос по функции gcvt(преобразовывает float в строку))

Вот описание функции из встроенной справки С++ Builder
char *gcvt(double value, int ndec, char *buf);

float f = 15.47;
int i = 5;
char *buf; //при таком объявлении переменной не работает
gcvt(f,i,buf);// при вызове gcvt вылазит ошибка "Access vilation at
address 32663D3D. Write of address 00000001"

float f = 15.47;
int i = 5;
char buf[5]; // при таком объявлении работает правильно
gcvt(f,i,buf);

Ктото знает - это глюк С++, функцию в мануале С++ описали неправильно или может дело в чем то другом?

Последний раз редактировалось shurik_7866; 09.11.2009 в 22:53.
shurik_7866 вне форума Ответить с цитированием
Старый 09.11.2009, 22:56   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
char *buf; //при таком объявлении переменной не работает
а выделять память кто будет?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 09.11.2009, 23:20   #3
shurik_7866
Пользователь
 
Регистрация: 07.02.2007
Сообщений: 50
По умолчанию Дело было в невыделении памяти под указатель

Спасибо пользователю - Пепел Феникса за подсказку. Уже все работает.
Вот код кому интересно

Код:
 float f = 15.47;
  int i = 5;
  char *buf;
  buf = (char*)malloc(5);
  gcvt(f,i,buf);
  cout<<buf<<endl;
  getch();
  free(buf);

Последний раз редактировалось Sazary; 10.11.2009 в 03:26.
shurik_7866 вне форума Ответить с цитированием
Старый 09.11.2009, 23:58   #4
paladinn
Пользователь
 
Регистрация: 19.12.2008
Сообщений: 26
По умолчанию

Код:
#include <iostream>
#include <string>
#include <sstream>
int main()
{
	std::stringstream s ; 
	s << "5.65" << std::endl;
	std::string str = s.str();
	std::cout << "our string is" << ' ' << str;
	return 0;
}
как вариант
paladinn вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вопрос про тип float Ildm Общие вопросы C/C++ 1 15.10.2009 08:25
Си. Вопрос по функции forsaken66 Помощь студентам 6 06.10.2009 23:53
Аналог функции rand() для типа float Linel PHP 1 01.06.2009 21:01
вопрос по функции WaitForSingleObject shurik_7866 Общие вопросы Delphi 2 08.12.2008 10:53
Вопрос наверное про функции, а так точно даже не знаю про что. (Вопрос начинющего #6) Albert2008 Общие вопросы Delphi 4 21.08.2008 15:33