Форум программистов, компьютерный форум CyberForum.ru

new const char[x]. Копия - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ одномерные массивы http://www.cyberforum.ru/cpp/thread89540.html
1. Дано целое число N (> 0). Сформировать и вывести целочисленный массив размера N: • содержащий N первых положительных нечетных чисел; • содержащий степени двойки от первой до N-й. помогите пожалуйста
C++ Указатель на метод класса. Программа отказывается присваивать метод класса указателю. Как исправить? test.cpp: In function ‘int main()’: test.cpp:66: error: invalid use of non-static member function ‘virtual void Mammal::Speak() const’ test.cpp:67: error: invalid use of non-static member function ‘virtual void Mammal::Move() const’ #include <iostream> using namespace std; class Mammal http://www.cyberforum.ru/cpp/thread89451.html
C++ Кубическое уравнение методом биссекции
Дано кубическое уравнение x^3 + a*x^2 + b*x + c = 0 имеющие три действительных корня на отрезке (-10; 10). Найти корни уравнения с точностью до 1/1000 методом половинного деления. Проверить полученное уравнение корней подставив a = - 2,52 b= - 27,342 c= 25, 952 С графиком Язык ТУРБО СИ
Программа в порядке, однако segmentation fault. C++
Код правильный, программа компилируется, работает как надо, однако при выходе получаю Segmentation fault. Так в чем же ошибка? // ADT-класс #include <iostream> using namespace std;
C++ !функция из данной программы http://www.cyberforum.ru/cpp/thread88977.html
#include<iostream.h> #include<math.h> #include<conio.h> const int n=3; void main ( ) { clrscr (); int A, B; int m=0; for (int i=0; i<n; i++)
C++ Что называется NULL-принципом? Очень подозреваю, что знаю сам принцип и его плюсы. Но уверенно связать свои знания с этим названием не могу. Ответьте, пожалуйста, на вопрсы: 1. Что называется NULL-принципом? 2. Как он точно формулируется? подробнее

Показать сообщение отдельно
insideone
Модератор
Автор FAQ
 Аватар для insideone
3634 / 912 / 48
Регистрация: 10.01.2010
Сообщений: 2,457
26.01.2010, 14:20  [ТС]     new const char[x]. Копия
Объект хранит множество строк, которые загружаются из других функций. Загрузить строки при инициализации объекта нежелательно, однако это и не возможно - входные данные - строки из файла.


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class StringGroup{
private:
    char* data[HASH_MAX_LEN];
public:
    StringGroup();
    char*& operator[] (const char* newKey);
};
 
StringGroup::StringGroup(){
    memset(&data, 0, sizeof(data));
}
 
char*& StringGroup::operator[] (const char* StringKey){
    unsigned short int IntKey = Math::Hash(StringKey);
return data[IntKey];
}
Тут загрузка:
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
38
39
40
41
42
43
44
45
46
    // Загрузка строковых данных
    bool String(const char* FileName)
    {
        // Открываем файл
        std::fstream* CurFile = GetFile(FileName);
        if ( !CurFile ) {return false;}
 
 
        // Переменные для считываемых из файла значений
        std::string CURLINE, KEYWORD;
        while (!(CurFile->eof()))
        {
            // Читаем строку из файла
            std::getline((*CurFile), CURLINE);
            // Вырезаем все до первой табуляции\пробела\запятой - получаем ключевое слово
            KEYWORD = SW.CutBefore(&CURLINE, "\t ,");
 
            int Cur22 = CURLINE.find(0x22);
            // Обе кавычки найдены
            if ( CURLINE.find(0x22, Cur22+1) != 0xffffffff )
            {
                // В строке CURLINE оставить только то что находится между первыми двумя '"' (0x22 HEX)
                SW.CutBetween(&CURLINE, 0x22);
            }
            else
            {
                CURLINE = SW.CutBefore(&CURLINE, "\t ,\\/");
            }
 
            // Если строка пустая
            if (strcmp(KEYWORD.c_str(), "") == 0)
                continue;
            // Если комментарий
            if (strcmp(KEYWORD.c_str(), "\\\\") == 0)
                continue;
            
            // загружаем строку CURLINE в базу строк по индексом hash(KEYWORD)
            const char* Key = KEYWORD.c_str(); unsigned char len = CURLINE.length()+1;
 
            char*& CurStrInDB = Strings[Key];
            CurStrInDB = new char[len];
            memcpy(CurStrInDB, CURLINE.c_str(), len);
        }
        CurFile->close();       
    return true;
    }
Конкретнее в чем проблема: обеспечить аналогичную функциональность при StringGroup::data const char* [] а не char* [] как сейчас.
 
Текущее время: 02:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru