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

Heap corruption detected: after normal block (#153) at 0x00345730 - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ 5 м/с и 5 км/ч. Что больше? http://www.cyberforum.ru/cpp-beginners/thread237127.html
5 м/с и 5 км/ч. что больше? Нужно составить программу С++. Именуйте темы осмысленно. Название темы должно максимально полно отражать ее содержание.
C++ В чем ошибка? Здраствуйте читаю книгу Джесса Либерти С++ за 21 день, там вот такая функция: функция которая принимает два целочисленных параметра и возвращает целочисленное значение. #include <iostream> using namespace std; int Add (int x, int y) { cout <<"In Add(),received "<<x << "and "<< y <<"\n"; } int main() { http://www.cyberforum.ru/cpp-beginners/thread237101.html
Почему массив не переполняется? C++
Вот в одной книге есть задание создать вектор и скопировать элементы в массив. Почему массив не переполняется в следующем коде, какая-то загадка для меня. Вроде бы после введения 2-3 элементов он не должен больше принимать, а он принимает, и только после введения 6 элементов программа завершается с ошибкой, а 5 спокойно запоминает, ладно бы вектор, а тут массив, вроде бы с определенным размером:...
C++ Чётные слова в строке
Ввести строку. На экран вывести все чётные слова. #include "StdAfx.h" #include<conio.h> #include <ctime> #include <iostream> #include <math.h> #include <string> using namespace std;
C++ Программа перевода систем счисления http://www.cyberforum.ru/cpp-beginners/thread237050.html
Не могу написать программу по переводу числа из 10-ой в 2-ую. Смотрел другие темы не понял да и программы там не понятные были. Если поможете, то не могли бы написать комментарии чтобы мне было понятно (я только учусь)
C++ Обработка массива строк Вот мой массив строк: #include <iostream.h> #include <conio.h> #include <stdio.h> #include <string.h> #include <stdlib.h> struct pupil { char name; int age; float rating; подробнее

Показать сообщение отдельно
arz
Сообщений: n/a
02.02.2011, 11:05     Heap corruption detected: after normal block (#153) at 0x00345730
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#ifndef COW_H__
#define COW_H__
 
 
class Cow
{
    char name[20];
    char *hobby;
    double weight;
    static int num;// chislo obektov
public:
    Cow();
    Cow(const char * nm, const char *ho, double wt);
    Cow(const Cow & c);
    ~Cow();
    Cow & operator=(const Cow & c);
    void ShowCow() const;
    static int HowMany();
};
#endif
*****************************************
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
54
55
56
57
58
59
60
61
#include <iostream>
using namespace std;
#include "cow.h"
#include <cstring>
 
 
int Cow::num = 0;
int Cow::HowMany()
{
    return num;
}
Cow::Cow() //konstruktor po ymolchaniu
{
    cout << "Objekt num sozdan " << num++ << endl;
    name[0] = '\0';
    hobby = 0;
    weight = 0.0;
}
 
Cow::Cow(const char * nm, const char *ho, double wt)// konstruktor
{
    cout << "Objekt num sozdan " << num++ << endl;
    strcpy(name, nm);
    hobby = new char[strlen(ho + 1)];
    strcpy(hobby, ho);
    weight = wt;
    
}
 
Cow::~Cow()// destruktir
{
    cout << "Objekt num udalen " << --num << endl;
    delete [] hobby;
}
 
Cow & Cow::operator=(const Cow & c)// function prisvaivaniya
{       
    if (this == &c)
        return *this;
    strcpy(name, c.name);
    delete [] hobby;
    hobby = new char[strlen(c.hobby + 1)];
    strcpy(hobby, c.hobby);     
    return *this;
}
 
void Cow::ShowCow() const
{
    cout << "name " << name << endl;
    cout << "hobby " << hobby << endl;
    cout << "weight " << weight << endl;
}
 
Cow::Cow(const Cow & c)//konstruktor copyrovaniya
{
    cout << "Objekt num sozdan " << num++ << endl;
    strcpy(name, c.name);
    hobby = new char[strlen(c.hobby + 1)];
    strcpy(hobby, c.hobby);
    weight = c.weight;  
}
**********************************
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include "cow.h"
#include <iostream>
using namespace std;
 
int main()
{
    Cow rosa("Redrose", "Whiterose", 777.7);
    rosa.ShowCow();
    Cow pion("Redpion", "Whitepion", 7.0);
    pion.ShowCow();
    pion = rosa;
    pion.ShowCow();
    Cow gvozdika = pion;
    gvozdika.ShowCow();
    cout << "Programma ispolsovala " << Cow::HowMany() << " obectov Cow " << endl;
    return 0;
}

Компилятор выдает: HEAP CORRUPTION DETECTED: after normal block (#153) at 0X00345730.
CRT detected that the application wrote to memory after end of heap buffer. Где в этом коде ошибка?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 09:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru