Форум программистов, компьютерный форум 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++ Как научиться программировать на языке С++; Аллен Р., Глассборо Ф. У кого нибудь есть "Как научиться программировать на языке С++; Аллен Р., Глассборо Ф." в электронном формате? подробнее

Показать сообщение отдельно
master.EXE
88 / 16 / 2
Регистрация: 10.03.2008
Сообщений: 101
14.11.2008, 19:22
delete[] arr;//удаляется заданный в .h указатель.
char *arr= new char[16];//нет параметра - размер 16
Смотри, ты очищаешь память, выделенную под указатель arr, а затем создаешь новый указатель arr, который у тебя разрушается сразу же после выхода из конструктора.
Т.е. ты выделяешь память не под тот указатель arr, который у тебя описан в разделе private, а под совершенно новый локальный arr.
void CMyString::input(char* a)
{

for (int i = 0; ; i++)
{
arr[i] = a[i];
if (a[i] == '\0') break;
}
}
тут я могу посоветовать сделать так:
C++
1
2
3
4
5
void CMyString::input(char* a)
{
    for (int i = 0;a[i]!='\0'; i++)
        arr[i] = a[i];
}
Но это совет чисто по синтаксису. А вообще, я думаю что в этом месте прога у тебя вылетает по причине "неправильного" конструктора массива.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru