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

_BLOCK_TYPE_IS_VALID при вызове деструктора класса - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Файловые потоки http://www.cyberforum.ru/cpp-beginners/thread270611.html
Компилятор ругается при создании экземпляра класса ofstream. Среда разработки - Visual C++ 2008. Выдает error C2079: 'fileout' uses undefined class 'std::basic_ofstream<_Elem,_Traits>' В чем тут проблема? Пробовал применять метод Open, предварительно использовав конструктор без параметров - таже фигня. Вот участок кода: // Laba2_Stream.cpp : Defines the entry point for the console...
C++ Функции на С: в последовательностях все члены, следующие за членом с наибольшим значением, заменить на 0,5 Даны действительные числа a1, …, an, b1, …, bm. В последовательности a1, …, an и в последовательности b1, …, bm все члены, следующие за членом с наибольшим значением (за первым по порядку, если их несколько), заменить на 0.5. http://www.cyberforum.ru/cpp-beginners/thread270607.html
Обработка символьных данный C++
Добрый день у меня проблема с задачей не могу сообразить как ее делать . Задача: В строке , введенной пользователем изменить порядок слов на обратный .
C++ ошибки или всё не правильно.
вводится текст.разбивается на слова.....и если слова не одинаковы то выводятся..... ничего не получается(помогите пожалуйста.... #include "stdafx.h" #include <iostream> #include <conio.h> using namespace std; int main() { string s; cin>>s;
C++ Разность двумерных массивов http://www.cyberforum.ru/cpp-beginners/thread270599.html
Добрый день! Недавно я начал изучать С++, а до этого писал на делфи! Задали мне написать функцию, которая должна на входу принимать размерность массивов(l, m) и два двумерных массива (a, b) Нужно из массива а вычесть массив b, т.е a:=a-b Нужно написать ФУНКЦИЮ absorbit на С++ Помогите, пожалуйста! Зараннее благодарю
C++ Нужно исправить ошибку в коде! Вот задание: Создать приложение для вычисления значения арифметического выражения, которое может включать в себя действительные числа, а также круглые скобки и следующие операции: +, -, *, /, ^ (возведение в степень). Вычисления должны производиться с учетом скобок и приоритетов используемых операций. Предусмотреть корректную обработку возможных ошибок и информирование о них пользователя. ... подробнее

Показать сообщение отдельно
silent_1991
Эксперт C++
4949 / 3025 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
05.04.2011, 18:49     _BLOCK_TYPE_IS_VALID при вызове деструктора класса
У вас есть указатель name. Вы выделяете для него память: name = new char [20];. Теперь он указывает на некоторую область памяти, выделенную в куче. На следующей строчке вы неявно создаёте константную строку "name" (в стеке) и тут же присваиваете адрес этой строки указателю name. Таким образом, ваша память, выделенная строкой раньше, теряется (она выделена, но адрес её безвозвратно потерян), а name теперь указывает на выделенную в стековой памяти константную строку. Затем, в деструкторе, вы пытаетесь применить delete к name. Но name указывает на область автоматической памяти (выделенной в стеке, объекты в которой автоматически удаляются по истечении времени жизни), и применять к этой памяти delete ни в коем случае нельзя, о чём и говорит выскочившее сообщение. Строку name = "name"; следует заменить на strcpy(name, "name"), в этом случае вы измените не просто указатель, а данные, на которые он указывает.
 
Текущее время: 14:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru