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

Ошибка при освобождении памяти массива char* - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Описать структуру с именем ITINERARY http://www.cyberforum.ru/cpp-beginners/thread1086570.html
Описать структуру с именем ITINERARY, который вмещает в себе, следующие поля: FIRST– название начального пункта маршрута, FINAL– название конечного пункта маршрута, NUM– номер маршрута, DISTANCE– расстояние в километрах. Написать программу, которая отдельными функциями выполняет следующие пункты: – введение с клавиатуры, данных в массив ROUT, который состоит из N переменные типа...
C++ Побочная линия Здаров! http://informatics.mccme.ru/mod/statements/view3.php?id=282&chapterid=354#1 Помогите с задачей плиз! int n; int j; cin>>n; int arr; for (i=0;i<n;i++) http://www.cyberforum.ru/cpp-beginners/thread1086568.html
C++ Заполнить массив-структуру используя цикл
Здравствуйте.Задача: заполнить структуру значениями #include <stdio.h> #include <conio.h> #include "stdafx.h" #include <iostream> #include <iomanip> using namespace System; using namespace std; bool place;
Обьясните что происходит в данной функцие C++
Объясните неучу, очень интерестно что происходит в if ((....)) do { std::cout << "Введите число: "; std::cin >> num; if ((temp > 0 && num < 0) || (temp < 0 && num > 0)) count++;
C++ BigInt, взятие степени http://www.cyberforum.ru/cpp-beginners/thread1086543.html
Добрый день столкнулся с такой задачей: необходимо получать значения чисел при возведении их к большим степеням ( например 2 ^ 100000 ). Для этих целей я нашел исходники класса BigInt. Он отлично и быстро возносит в степень (...
C++ Простейшая программа, вывод на экран суммы, разности двух чисел. Ошибка Пишу свою вторую программу на C++, Программа просит пользователя ввести два числа, получает числа от пользователя и затем печатает сумму, произведение, разность и частное этих чисел. Проблема: При компилировании ошибок не найдено, но в командной строке вывод на экран не производится либо производится, но окно скрывается. Соответствующий раздел на форуме читал, не вижу собственной ошибки.... подробнее

Показать сообщение отдельно
Керра
Модератор
 Аватар для Керра
1270 / 438 / 45
Регистрация: 24.08.2011
Сообщений: 2,123
31.01.2014, 20:16     Ошибка при освобождении памяти массива char*
Класс должен читать слова из файла (C:\\IN.TXT) по одному, и выводить на экран.
Почему появляется ошибка в строке 56, и в конце программы, видимо тоже при удалении?
И еще, почему если при создании объекта с помощью конструктора по умолчанию, то все места, где используется этот объект, подчеркиваются, и пишется "expression must have class type"?

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
62
63
64
65
66
67
68
#include "stdafx.h"
#include <iostream>
using std::cout;
using std::endl;
#include <string>
#include <fstream>
using std::ifstream;
#include <conio.h>
 
class Word
{
private:
    char *str;
public:
    Word();
    Word(ifstream &);
    ~Word();
    void read(ifstream &);
    void print() const;
};
 
int main()
{
    ifstream fin("C:\\IN.TXT");
    Word word_obj(fin);
    word_obj.print();
    word_obj.read(fin);
    word_obj.print();
    getch();
    return 0;
}
 
Word::Word()
{
    str = new char[1];
    str = "";
}
 
Word::Word(ifstream &fin)
{
    str = NULL;
    read(fin);
}
 
Word::~Word()
{
    if (str != NULL)
        delete [] str;
}
 
void Word::read(ifstream &fin)
{
    char tmp[50];
 
    fin >> tmp;
    if (str != NULL)
        delete [] str;
    int len = strlen(tmp);
    str = new char[len];
    for (int i = 0; i <= len; i++)
        str[i] = tmp[i];
}
 
void Word::print() const
{
    setlocale(LC_ALL,"rus");
    cout << "\"" << str << "\"" << endl;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 20:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru