Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Systemes
0 / 0 / 0
Регистрация: 05.07.2012
Сообщений: 11
#1

Падение Release - C++

10.04.2013, 17:09. Просмотров 404. Ответов 3
Метки нет (Все метки)

Всем привет. Есть код по конвертированию float в строку char*
http://www.cyberforum.ru/cpp-beginners/thread688970.html
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <sstream>
using std::stringstream;
#include <iostream>
using std::cout;
using std::endl;
using std::cin;
 
char* conv_f_to_s(float num){
     stringstream iostr;
     char *s;
    // num = round(num, 4); // обрезаем до 4-х символов
     s = new char[10];
     iostr<<num;
     iostr>>s;
     return s;
}
В дебаге код работает, в релизе крашит программу. Причина в строчках iostr<<num; iostr>>s; Как исправить хз(П.С. Код кстати нашел где-то тут на форуме
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.04.2013, 17:09
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Падение Release (C++):

Не работает в release
Доброго времени суток, Столкнулся со следующей проблемой: При выполнении...

Не компилируется в Release
Здравствуйте, проблема в следующем: LPTSTR m_name = new char; Это...

Release/Debug
Здравствуйте! Пишу сложную расчётную программу. И мне важна скорость выполнения...

ошибка в Release компиляция
В Release версии не появляется окно WinAPI, Настройки в Debug и Release...

Debug и Release разница?
объяснить пожалуйста разница между Debug И Release? и почему после компиляции...

3
GetVariable
163 / 119 / 46
Регистрация: 17.03.2013
Сообщений: 283
10.04.2013, 17:20 #2
C++
1
2
3
4
5
6
7
8
9
#include <sstream>
 
string convertDouble(double value) 
{
  std::ostringstream o;
  if (!(o << value))
    return "";
  return o.str();
}
1
stima
495 / 345 / 93
Регистрация: 22.03.2011
Сообщений: 1,107
Завершенные тесты: 2
10.04.2013, 17:31 #3
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
26
27
28
29
30
31
32
33
34
35
36
37
#include <iostream>
#include <sstream>
#include <iomanip>
 
char* ftoa_1(float value)
  {
  std::stringstream ss;
  ss << std::fixed << std::showpoint << std::setprecision(2) << value;
 
  char *str = new char[ss.str().length() + 1]();
  strcpy(str, ss.str().c_str());
  
  return str;
  }
 
char* ftoa_2(float value)
  {
  int size = 0;
  for (int dec = value; dec; dec /= 10, ++size);
 
  char *str = new char[size + 2 + 1]();
  sprintf(str, "%.2f", value);
 
  return str;
  }
 
int main()
  {
  float value = 10.53f;
 
  char *s1 = ftoa_1(value);
  char *s2 = ftoa_2(value);
 
  printf("1: %s 2: %s\n", s1, s2);
 
  return 0;
  }
0
Systemes
0 / 0 / 0
Регистрация: 05.07.2012
Сообщений: 11
10.04.2013, 17:54  [ТС] #4
спасибо! работает)))
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.04.2013, 17:54
Привет! Вот еще темы с решениями:

Отличие get() и release() у auto_ptr
Вопрос,конечно,глупой. Но не могу разобраться. В чём всё таки различение между ...

Функция GetTextExtentPoint32 в RELEASE EXE
Выдает на выходе в структуре SIZE бешанные числа (как будто фонт не определен)...

Неопределенное поведение в Debug и Release
Писал программу для сложения больших чисел (в файле содержатся числа с...

Release. Работа на другом компьютере
Написал программу в Visual Studio 2010. Вчера скинул её другу посмотреть, она...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru