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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.91
Unling
0 / 0 / 0
Регистрация: 22.10.2011
Сообщений: 8
#1

HEAP CORRUPTION DETECTED - не понятно почему - C++

10.07.2012, 13:03. Просмотров 1492. Ответов 4
Метки нет (Все метки)

Помогите пожалуйста.
Есть такой код:

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
double e;
    char* w;               /////// POINT 1
    string q;
    size_t pos;
    string txtfile;
    Par.push_back(timuk);
    
    char charfile[40];
    itoa(n, charfile, 10);
    ifstream in( WORK_PATH + charfile + ".txt");
    getline(in, txtfile);
    
    
    getline(in, txtfile);
    pos = txtfile.find("=");
    q = txtfile.substr(pos+1);
   
     w = new char[q.length()];    ////// POINT 2
  
     strcpy(w, q.c_str());
  
    e = atof(w);
 
    Par[n]->Yaw=e;
 
    ////
    getline(in, txtfile);
    pos = txtfile.find("=");
    q = txtfile.substr(pos+1);
    
    delete w;                   ////////  POINT 3
    w = new char[q.length()];
    strcpy(w, q.c_str());
    e = atof(w);
    Par[n]->Roll=e;

Он парсит текстовый файл и достаёт оттуда параметры.
В точке 1 - объявляю указатель. В точке 2 - создаю сам объект. В точке 3, при попытке удалить объект - ошибка: HEAP CORRUPTION DETECTED
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.07.2012, 13:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос HEAP CORRUPTION DETECTED - не понятно почему (C++):

Почему вылетает ошибка Heap corruption detected - C++
Добрый вечер. Ошибка вылетает на строке 870 в файле Lexical_unit.cpp, когда происходит попытка изменить значение переменной,...

Heap corruption detected - C++
При попытке очистить память выдает "Heap corruption detected". Помогите пожалуйста( // labanext.cpp : Defines the entry point for the...

heap corruption detected - C++
имеется класс CStr - строка, в нём есть конструктор CStr CStr::CStr(char *s) { length = 0; while (s) length++; str = new...

Heap Corruption detected ( - C++
что не правильно? запускаю и ошибка вылетает как на предидущей картинке template<typename TT> class Matrix { public:...

Heap corruption detected - C++
Ошибка возникает после отработки программы Заголовочный файл: #pragma once #include<iostream> #include<valarray> ...

HEAP CORRUPTION DETECTED - C++
Собственно такую ошибку выдаёт: "HEAP CORRUPTION DETECTED: after Normal block (#220) at 0x001970B8. CRT detected that the application...

4
defer
秘密
555 / 235 / 3
Регистрация: 29.11.2010
Сообщений: 783
10.07.2012, 13:29 #2
попробуйте delete[]
1
cppGhost
32 / 30 / 1
Регистрация: 21.06.2012
Сообщений: 91
10.07.2012, 13:34 #3
во-первых, да
C++
1
delete [] w;
а во-вторых, попробуй
C++
1
w = new char[q.length()+1];
1
gray_fox
What a waste!
1522 / 1227 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 3
10.07.2012, 13:34 #4
Цитата Сообщение от Unling Посмотреть сообщение
C++
1
2
w = new char[q.length()]; ////// POINT 2
strcpy(w, q.c_str());
Под последний символ ('\0') память не выделена.
1
Unling
0 / 0 / 0
Регистрация: 22.10.2011
Сообщений: 8
10.07.2012, 13:39  [ТС] #5
На одни и те же грабли опять с этим "+1" ((
Заработало)) Спасибо всем.
0
10.07.2012, 13:39
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.07.2012, 13:39
Привет! Вот еще темы с ответами:

Heap corruption detected - C++
Добрый день! Проблема вот в чём: когда выполнение кода доходит до 163 строки, появляется ошибка: " HEAP CORRUPTION DETECTED: after Normal...

Heap corruption detected - C++
Возникает эта ошибка при выполнении функции Strings::Append (строка 81, в меню это пункт 3). Входные данные на всякий случай прикрепила....

Heap corruption detected - C++
Heap corruption на строке 93 при первом же выполнении цикла. Из-за чего? #include <locale.h> // для возможности вывода кириллицы ...

Heap Corruption Detected - C++
Выдает ошибку HEAP CORRUPTION DETECTED, судя по всему где то ошиблась с распределением памяти Предполагаю, что ошибка прячется в районе...


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

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

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