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

Ошибка освобождения памяти new/delete - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Дан массив. определить количество неотрецательных элементов http://www.cyberforum.ru/cpp-beginners/thread1043122.html
Дан массив. определить количество неотрецательных элементов
C++ Аргументы у функции void String(int i, int j, int N, double a) И компилятор студии 2010 выдает следующие ошибки: 1>Hello.cpp(48): error C2057: expected constant expression 1>Hello.cpp(48): error C2466: cannot allocate an array of constant size 0 1>Hello.cpp(48): error C2057: expected constant expression 1>Hello.cpp(48): error C2466: cannot allocate an array of constant size 0 1>Hello.cpp(48): error C2087: 'a'... http://www.cyberforum.ru/cpp-beginners/thread1043117.html
Найти площадь пятиугольника C++
даны вещественные числа a.b.c.d.e Найти площадь пятиугольника ,(определить функцию для расчёта площади треугольника по трём сторонам) в задании картинка пятиугольника
C++ Сложение строк в матрице (С++)
Прибавить к к-ой строке исходной матрицы е-ю строку, умноженную на заданное число. Помогите пожалуйста...
C++ Сортировка карманным методом (блочный метод) http://www.cyberforum.ru/cpp-beginners/thread1043105.html
Помогите. Нужен программный код для сортировки массива карманным методом (блочный метод).
C++ Даны действительные числа x,y,z Даны действительные числа x,y,z. Вычислить min2(x+y+z/2, xyz)+1. подробнее

Показать сообщение отдельно
fobos362
0 / 0 / 0
Регистрация: 15.12.2013
Сообщений: 4
15.12.2013, 22:31     Ошибка освобождения памяти new/delete
При выполнении оператора delete[]rez вылетает ошибка BLOCK_TYPE_IS_VALID(pHead->nBlockUse)

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
#include <iostream>
using namespace std;
 
class Soed {
public:
    char str1[40],str2[10];
    char* SS (char *str1,char *str2){strcat(str1,str2); return str1;}
    Soed(){}
    ~Soed(){}
};
int main(){
Soed first;
 
gets(first.str1);
gets(first.str2);
 
char* rez=new char[50]; 
rez=first.SS(first.str1,first.str2);
puts(rez);
 
 
delete[] rez;
 
return 0;
}
Пробовал другой вариант:
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
#include <iostream>
using namespace std;
 
class Soed {
    char str1[40],str2[10],*str3;
public:
    void set_str1(){gets(str1);}
    void set_str2(){gets(str2);}
    char get_str1(){return str1[40];}
    char get_str2(){return str2[10];}
    char*get_str3(){return str3;}
    void disp_str3(){puts(str3);}
    void cat(){ str3=strcat(str1,str2); }
    Soed(){str3=new char[40];}
    ~Soed(){delete[40]str3;}
};
int main(){
Soed first;
first.set_str1();
first.set_str2();
first.cat();
first.disp_str3();
return 0;
}
Тоже самое. Подскажите пожалуйста, буду крайне благодарен, а то целый день сижу уже гуглю.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 18:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru