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

Динамеческая память. Исключение - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти наибольшее из трёх заданных чисел http://www.cyberforum.ru/cpp-beginners/thread654655.html
max(x,y,z) и (x,y,z) , как решить помогите плз!
C++ Считывание структуры из файла(бинарно) Написал прогу которая работает со списком: (По завершению программа - записывает полученный список в файл(бинарно)) Потом, когда программа открывается снова - первым делом она считывает список из... http://www.cyberforum.ru/cpp-beginners/thread654654.html
Max(x,y,z) min(x,y,z) на c++ C++
max(x,y,z) min(x,y,z) на c++ Добавлено через 47 секунд пожалуйста помогите!
C++ Вывести все нечетные числа в заданном интервале
Кому не трудно помочь с вторым и третьим вопросом. Буду очень благодарен.Спасибо.
C++ С.Прата глава 5(циклы) зад.4 http://www.cyberforum.ru/cpp-beginners/thread654633.html
Помогите с задачей: Вы продаёте книгу. Напишите программу, которая позволит ввести помесячные объемы продаж в течении года(в кол-ве книг, а не в деньгах). программа должна использовать цикл, в...
C++ double быстрее всех? В книге Прата написано что int быстрей... я не поверил на слово и решил проверить. Написал простую программу: #include <iostream> #include <time.h> template<class T> void frequency_of_primes... подробнее

Показать сообщение отдельно
gor2521
0 / 0 / 0
Регистрация: 16.06.2012
Сообщений: 8

Динамеческая память. Исключение - C++

19.09.2012, 21:27. Просмотров 367. Ответов 6
Метки (Все метки)

Всем доброго времени суток!
Предисловие: Имеется задание на связные списки. Суть задания не важна, но вкратце: по входным строкам формировать дерево папок. Используемый мною язык, очевидно, c++, который четкой родственной связи со мной проявлять, пока что, не сильно желает.

Проблема, как она есть: При выделении памяти под структуру данных (в листинге строка #39), при помощь оператора new, обрабатывается исключение: std::bad_alloc.

Суть вопроса: Нужна помощь в поиске места, где предположительно портится куча.

Нотабене: Критика в сторону плохого английского языка в комментариях к коду, иррациональности выполнения каких-либо действий с удовольствием принимаются!

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
47
48
49
50
51
52
53
54
55
  //Main Loop
  for (int i = 0; i < adressNum; i++)
  {
    in >> maxAdress;
    adressLen = strlen(maxAdress);
    adress = new char[adressLen + 1];
    strcpy_s(adress, adressLen + 1, maxAdress);
 
    /*After we will one buy one part adress string on Folder Names and 
    with few rules add them into Folder Lists, data, which need to be
    given together with FolderName is:
     a. Level of folder (Ex. "C\Files\Games" C has level 0, Files - 1, etc)
     b. Parant name (For ex. above: "C" folder is parant for folder "Files")
     */
    char *curFolder = NULL;
    char *curParent = NULL;
    int curLevel = 0, j = 0;
 
    /*At first reading ROOT folder and choosing List in fList array
    in which we will add folders form adress. It can be new list or already list,
    which already exist*/
    curParent = new char[MAX_FOLDER_NAME + 1];
    curFolder = new char[MAX_FOLDER_NAME + 1];
    ReadFolder(adress, j, curFolder); 
 
    while (fList[j].Head() != NULL)
    {
      if (!strcmp(fList[j].Head(), curFolder))
        break;
      j++;
    }
 
    listNum = j;
    j = strlen(curFolder) + 1;
 
    
    for (j; j < adressLen; j = j + strlen(curFolder) + 1)
    {
      FolderListItem *newItem = new FolderListItem(curFolder, curLevel, curParent);
      fList[listNum].AddInOrder(newItem);
 
 
      curLevel++;
 
      strcpy_s(curParent, MAX_FOLDER_NAME + 1, curFolder);
 
      ReadFolder(adress, j, curFolder);
 
    }
    fList[listNum].PrintList(outputFile);
 
    delete [] curParent;
    delete [] curFolder;
    delete [] adress;
  }
PS: На всякий случай прикрепляю заголовочный файл с описанием класса для списка, файл с его реализацией и мэйн.
0
Вложения
Тип файла: txt mainCpp.txt (2.8 Кб, 2 просмотров)
Тип файла: txt FolderListH.txt (1.6 Кб, 4 просмотров)
Тип файла: txt FolderListCpp.txt (1.7 Кб, 4 просмотров)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru