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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
tdo22
10 / 10 / 1
Регистрация: 14.02.2013
Сообщений: 728
#1

Укажите где ошибка (ошибка во время выполнения программы) - C++

23.08.2014, 13:04. Просмотров 428. Ответов 8
Метки нет (Все метки)

Здравствуйте, помогите пожалуйста найти ошибки в коде которые возникаю при выполнении программы
Картинка с ошибкой внизу поста.
Код:
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
void Zipper::OutCompress(string binary)
{
    FILE *bin = fopen(binary.c_str(), "rb");
    char info_block_size[5];
    fread(info_block_size, 1, 5, bin);
    int _sz = atoi(info_block_size);
 
    char *info_block = new char[_sz];
    fread(info_block, 1, _sz, bin);
 
    vector<string> tokens;
    char *tok = strtok(info_block, "||");
    int toks = 0;
    while (tok)
    {
        if (strlen(tok) == 0) break;
        tokens.push_back(tok);
        tok = strtok(NULL, "||");
        toks++;
    }
    if (toks % 2 == 1) toks--;
    int files = toks / 2;
 
    char byte[1];
 
    for (int i = 0; i<files; i++)
    {
        const char* size = tokens[i * 2].c_str();
        const char* name = tokens[i * 2 + 1].c_str();
        char full_path[255];
        strcpy(full_path, this->path.c_str());
        strcat(full_path, name);
        int _sz = atoi(size);
        cout << "--  '" << name << "' извлечен в '" << this->path << "' ." << endl;
        FILE *curr = fopen(full_path, "wb");
        for (int r = 1; r <= _sz; r++)
        {
            if (fread(byte, 1, 1, bin) == 1) 
                fwrite(byte, 1, 1, curr);
        }
        fclose(curr);
 
        delete[] size;
        delete[] name;
    }
    fclose(bin);
 
}
с помощью дибагера я установил что ошибка вылетает на 39 строке, но почему ?
Полный код программы
Миниатюры
Укажите где ошибка (ошибка во время выполнения программы)  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.08.2014, 13:04     Укажите где ошибка (ошибка во время выполнения программы)
Посмотрите здесь:

Во время выполнения программы результат не выводится. Где ошибка? - C++
Здравствуйте. Помогите, пожалуйста, найти ошибку в коде. Задание звучит так. Дан массив 4х5, нужно создать одномерный массив и...

Ошибка во время выполнения программы. - C++
Здравствуйте, помогите, пожалуйста, разобраться. Пытаюсь сдать задачу, из 27 тестов в трех - ошибка во время выполнения программы. ...

Ошибка во время выполнения программы - C++
Здравствуйте, есть задача Дано два списка чисел, числа в первом списке упорядочены по неубыванию. Для каждого числа из второго списка...

Ошибка во время выполнения программы (размещения с повторениями) - C++
Давно я не заходил на прекрасный форум...Надеюсь, найдутся люди, которые смогут помочь... Итак, задача: Даны N целых чисел x1,...

fputc не работает, укажите где в програмке ошибка - C++
В С создается файл и выполняется над ним работа. Создается файл, вводится в него текст, где слова разделены ' ' (пробелом), линии ':' (...

Ошибка во время выполнения - C++
есть такой вот кусочек кода, компилириуются без ошибок, а в процессе выполнения ругает int t = 0; ifstream fin; fin.open...

Ошибка во время выполнения - C++
#include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;fstream&gt; #include &lt;vector&gt; using namespace std; ifstream fin(&quot;input.txt&quot;);...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
23253 / 15244 / 4447
Регистрация: 22.10.2011
Сообщений: 27,132
Записей в блоге: 4
23.08.2014, 13:09     Укажите где ошибка (ошибка во время выполнения программы) #2
И где проверка на успешность открытия файла? curr точно не NULL?
tdo22
10 / 10 / 1
Регистрация: 14.02.2013
Сообщений: 728
23.08.2014, 13:11  [ТС]     Укажите где ошибка (ошибка во время выполнения программы) #3
curr NULL (0x00000000)
но почему не создает файл ?
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
23253 / 15244 / 4447
Регистрация: 22.10.2011
Сообщений: 27,132
Записей в блоге: 4
23.08.2014, 13:15     Укажите где ошибка (ошибка во время выполнения программы) #4
Проверяй.
errno, например посмотри...
tdo22
10 / 10 / 1
Регистрация: 14.02.2013
Сообщений: 728
23.08.2014, 13:19  [ТС]     Укажите где ошибка (ошибка во время выполнения программы) #5
сделал проверку на файл, и прохожу этот цикл так как файла нету.
Но потом на 43 строке выдает ошибку:
Укажите где ошибка (ошибка во время выполнения программы)
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
23.08.2014, 13:35     Укажите где ошибка (ошибка во время выполнения программы) #6
Выведи на экран full_path, посмотри куда он указывает.
tdo22
10 / 10 / 1
Регистрация: 14.02.2013
Сообщений: 728
23.08.2014, 13:48  [ТС]     Укажите где ошибка (ошибка во время выполнения программы) #7
Указывает на файл.
В моем случае это:
C:\unpack\1.txt
Добавлено через 7 минут
Присвоение вроде как верно прописано.
Но дебагер про curr пишет:
curr NULL (0x00000000)

Почему так ?
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
23.08.2014, 15:30     Укажите где ошибка (ошибка во время выполнения программы) #8
Папка unpack на диске C существует?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.08.2014, 16:04     Укажите где ошибка (ошибка во время выполнения программы)
Еще ссылки по теме:

strtod - ошибка во время выполнения - C++
#include &lt;cstdlib&gt; #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; int main(int argc, char *argv) { string...

Ошибка после выполнения программы - C++
Как исправить? Программа выполняется правильно, но после нажатья Энтера вот это выскакивает (очень сильно раздражает). Причем если нет ...

Ошибка при выполнения программы - C++
Всех с наступившем НОВЫМ ГОДОМ!!! У меня возникла ошибка при выполнение программы вот код: #include &lt;iostream&gt; #include...

После выполнения программы появляется ошибка - C++
Добрый день. Имеется лабораторная с заданием: 1. Ввести одномерные массивы X1n1 , X2n2 иX3n3 . Заменить в каж-дом из них максимальный...

Ошибка выполнения программы при использовании функций - C++
Все привет, друзья! Имеется задача: Последовательность {Ai}i-1 образована по правилу Ai=1/i. Дано вещественное число 0&lt;eps&lt;0.1. ...


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

Или воспользуйтесь поиском по форуму:
tdo22
10 / 10 / 1
Регистрация: 14.02.2013
Сообщений: 728
23.08.2014, 16:04  [ТС]     Укажите где ошибка (ошибка во время выполнения программы) #9
да, программа распаковывает свое содержимое в эту папку, но ошибка все равно есть
Yandex
Объявления
23.08.2014, 16:04     Укажите где ошибка (ошибка во время выполнения программы)
Ответ Создать тему
Опции темы

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