0 / 0 / 0
Регистрация: 26.10.2018
Сообщений: 15
1

Segmentation Fault

27.10.2018, 00:47. Показов 379. Ответов 2
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void Coder::set(const char * buf, size_t size)
{
    if ((buf == nullptr)) {
        throw std::logic_error("buf == nullptr");
    }
    if (size == 0 || size == std::numeric_limits<unsigned int>::max()) {//temporary
     throw std::logic_error("buf == nullptr");
    }
      if ((sizeof(buf) != size) && (strlen(buf)+1 != size)
         && (sizeof(buf) != sizeof(char*))){
          throw std::logic_error("sizeof(char*)");
      }
     m_buf = const_cast<char*>(buf);//segmentation fault !!!
     m_size = size;
}
Прошу помощи , как сделать что бы не было segmentation fault? Функция просто устанавливает значения в строковый буфер класса и размер.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.10.2018, 00:47
Ответы с готовыми решениями:

Segmentation fault
Кусок кода: template &lt;typename Type&gt; class Queue { private: struct Elem ...

Segmentation fault
Здравствуйте. Нужно динамически получить такое: char * a = {&quot;abc&quot;, NULL}; Пробую: char ** a; a...

Segmentation fault
Пишу лабу для универа. В общем необходимо использовать только свои функции, никаких, str......

Segmentation fault
Доброго времени суток. Есть 2 класса. object class object{ void (*f)(object*); public:...

2
1378 / 405 / 144
Регистрация: 22.10.2014
Сообщений: 872
27.10.2018, 00:56 2
gvvg, Выделить память под m_buf и сделать std::memcpy.
Ваше m_buf = const_cast<char*>(buf); сохраняет указатель указывающий на "временный" объект "строки", а вам надо скопировать данные, т.е. выделяете память через new и memcpy'ем копируете.
1
0 / 0 / 0
Регистрация: 26.10.2018
Сообщений: 15
27.10.2018, 01:37  [ТС] 3
Благодарю, помогло.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.10.2018, 01:37

Segmentation fault
Почему при таком варианте происходит Segmentation fault? vec3f trace(const Scene&amp; scene, const...

Segmentation fault
Всем привет. Пишу быдлокод для лабы в универе. Мне по определенному алгоритму необходимо получить...

Segmentation fault
Пытаюсь реализовать генетический алгоритм на с++. Всего существует два класса: GeneticEngine,...

Segmentation fault
Доброго времени суток. Столкнулся в программе с ошибкой Segmentation fault. Вообще, задача...


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

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

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