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

Debug assertion failed при освобождении памяти - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Список структур "Работник" http://www.cyberforum.ru/cpp-beginners/thread1496645.html
struct Rab { char *name; }; struct List { Rab elem; List *next; };
C++ Трудности на начальной стадии Написал первый программный код "Привет Мир" #include <iostream.h> int main () { cout <<"Hello World!\n" return 0; }Все время пишет такую ошибку:fatal error C1083: Не удается открыть файл включение: iostream.h: No such file or directory http://www.cyberforum.ru/cpp-beginners/thread1496643.html
Передача числа через аргумент командной строки C++
Здравствуйте. Мне необходимо передать число в программу, а затем работать с этим числом. Проблема состоит в том, что при считывании аргумента считывается лишь первый символ. То есть, я программа корректно работает с однозначными числами, но если передать в качестве аргумента, допустим, "39", то программа воспринимает его как "3". int _tmain(int argc, char* argv) { int X; ...
C++ Структура «База», сущности «Универсам» и «Продукты», структура «Товар»
1. Создать структуру «База», включающую не менее 3 полей. 2. Создать сущности «Универсам» и «Продукты» описанной структуры. 3. Создать структуру «Товар», содержащую не менее 5 полей, одно из которых называется «магазин» и указывает, в каком магазине этот товар. 4. Создать динамические массивы товаров магазинов Универсам и Продукты. 5. Написать функции для ввода значений массива с клавиатуры,...
C++ Класс "Матрица": ввод/вывод, умножение, сложение/вычитание, транспонирование, сдвиг http://www.cyberforum.ru/cpp-beginners/thread1496596.html
Написал код , но выдает ошибку , подскажите в чем она. Условие написать код в котором выполняются действие над матрицами ввод/вывод , умножение , вычитание , сложение , транспонирование и сдвиг #include "stdafx.h" #include <iostream> #include <iomanip> //#include <cstdlib> #include <ctime> //#include <exception> //#include <stdexcept> //#include <matrix.h>
C++ Std::basic_string в MSVC Как обстоят дела с stl строками в MS Visual C++ (например в 2013 версии). Конкретно интересует, используется ли для них COW механизм? Утверждают что в C++ 11 отказались от этой "оптимизации", но не на всех компиляторах. подробнее

Показать сообщение отдельно
frosstyy
0 / 0 / 0
Регистрация: 04.04.2015
Сообщений: 2
10.07.2015, 13:22     Debug assertion failed при освобождении памяти
Создал массив строк используя new. Весь код выполняется как нужно, но вместо спокойного выхода из программы выскакивает ошибка:
"Debug assertion failed!
Programm: ...ual Studio 2013\Projects\Practice\Debug\5.4 C++ for fools.exe
File: f:\dd\vctools\crt\crtw32\misc\dbgdel.cpp
Line: 52

Expression: _BLOCK_TYPE_IS_VALID(pHead->nBlockUse)

For information on how your programm can cause an assertion failure, see the Visual C++ documentations on asserts

(Press Retry to debug the application)
"
подозреваю, что что-то не так сделал с оператором delete
вот, собственно, код:
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
#include <iostream>
#include <conio.h>
 
using std::cout;
using std::cin;
using std::endl;
 
int main()
{
    const int q_month = 12;
    int sale_size[q_month];
    char** months;
    months = new char*[q_month];
 
    for (int i = 0; i < q_month; i++)
    {
        months[i] = new char[255];
    }
    
    months[0] = "January";
    months[1] = "February";
    months[2] = "March";
    months[3] = "April";
    months[4] = "May";
    months[5] = "June";
    months[6] = "July";
    months[7] = "August";
    months[8] = "September";
    months[9] = "October";
    months[10] = "November";
    months[11] = "December";
 
    for (int i = 0; i < q_month; i++)
    {
        cout << "Enter sale's size for " << months[i] << ": ";
        cin >> sale_size[i];
    }
 
    for (int i = 0; i < q_month; i++)
    {
        cout << months[i] << " sales: " << sale_size[i] << endl;
    }
 
    for (int i = 0; i < q_month; i++)
    {
        delete [] months[i];
    }
 
    delete [] months;
 
    _getch();
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 13:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru