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

Проблема с классом и массивом char-ов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вылетает ошибка при запуске программы http://www.cyberforum.ru/cpp-beginners/thread15958.html
Написал несложную программу сложения матриц. Скомпилирывал все нормально, ошибок нема. Начинаюца проблемы когда жму "Выполнить" програма запускаеца, нече не успевает сделать как вылетает ошибка,...
C++ Функции времени Подскажите можно ли, и каким способом вернуть из библиотечных функций чисто int значения min sec и hour чтоб присвоить их потом тем же переменным в своем созданом классе и если мона то каким способом. http://www.cyberforum.ru/cpp-beginners/thread15936.html
Классы-друзья (использование данных одного класса из другого) C++
Зарание спс ))) Я лаймер в С++ но учусь чтоб исправиться. И куда как не к вам обращаться за помощью =) в тяжкие дни свои. Проблема с классами, везде написано что для того чтоб мона было юзать ...
Сортировка вставками C++
Помогите плиз немогу написать программу, незнаю с чего начать и что писать, может у кого что нить завалялось для этой темы, заранее спс Короче, надо разработать программу для реализации алгоритма...
C++ Заменить любую группу пробелов одним http://www.cyberforum.ru/cpp-beginners/thread15929.html
помогите пожалуйста с лабой. необходимо сжать строку , заменив любую группу пробелов одним пробелом.Исходную строку и результат вывести на экран. Подпрограмму обработки строки следует оформить в...
C++ Как научиться программировать на языке С++; Аллен Р., Глассборо Ф. У кого нибудь есть "Как научиться программировать на языке С++; Аллен Р., Глассборо Ф." в электронном формате? подробнее

Показать сообщение отдельно
Nicl
0 / 0 / 0
Регистрация: 07.10.2008
Сообщений: 26

Проблема с классом и массивом char-ов - C++

14.11.2008, 18:52. Просмотров 1271. Ответов 9
Метки (Все метки)

Есть класс, содержащий одномерный массив из char-ов и методы для работы с ним. Проблема возникла в самом начале - не получается корректно изменить размер массива, а конкретно - удалить указатель перед сменой размера и во время запуска деструктора.

В .h:
C++
1
2
3
4
5
6
7
8
9
10
11
12
class CMyString
{
    int size;
    char* arr; //указатель на массив создается
public:
    CMyString(void);
    CMyString(int);
    ~CMyString(void);
    //CMyString operator+ (CMyString);
    //void input(char*);
    //void show(void);
};
В .cpp:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
CMyString::CMyString(void)
{
    delete[] arr;//удаляется заданный в .h указатель.
    char *arr= new char[16];//нет параметра  - размер 16
}
CMyString::CMyString(int size)
{
    delete[] arr;
    char *arr= new char[size];//есть параметр - размер size;
}
 
CMyString::~CMyString(void)
{
    delete[] arr; //деструктором удаляется указатель на массив. 
}
Вылетает при запуске с ошибкой.

Если же его не удалять, т.е. закомментировать все "delete[] arr" - проблема возникает на этапе заполнения массива.
C++
1
2
3
4
5
6
7
8
9
void CMyString::input(char* a)
{
 
    for (int i = 0; ; i++)
    {
    arr[i] = a[i];
    if (a[i] == '\0') break;
    }
}
Вылетает при запуске с ошибкой.

Помогите пожалуйста разобраться.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru