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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.94
owned
2 / 2 / 0
Регистрация: 25.11.2012
Сообщений: 76
#1

Выделение динамической памяти C++ - C++

27.11.2012, 01:33. Просмотров 2267. Ответов 42
Метки нет (Все метки)

Всем доброго времени суток. Вот столкнулся с проблемой и пока что не приходит ничего интересного по поводу её решения. есть у меня метод, который выделяет память + 1 в зависимости от введённого размера пользователем, а т.е в классе метод для выделения, а в воде cin с вопросом введите длину строку. например он ввёл размерность 5, метод выделяет ещё + 1 (для \0) а потом вызывается метод ввода строки, если он введёт большее кол-во символов в строке, то вылет. как осуществить проверку? например он ввёл размерность 5, а ввёл 7 и ему выводилось на экран заново cin>> размерность и строка. Вот сам код. Help:

методы:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
String(int i)
    {
        string = new char[i + 1];
    }
    String(char * s)
    {
        strcpy(string, s);
    }
    ~String()
    {
        delete [] string;
    }
    void Initialization()
    {
        cout<<"Введите строку: ";
        gets(string);
        char * buffer;
        buffer = gets(string);
        cout<<endl;
 
        ChoiseShowString();
    }
воид:

C++
1
2
3
4
5
6
7
8
9
10
11
else if(punkt == 2) 
            {
                system("title String произв. размера");
                system("mode con cols=43 lines=30");
                int c;
                cout<<"Введите размер символьного массива: ";
                cin>>c;
                cout<<endl;
                String b(c);
                b.Initialization();
            }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.11.2012, 01:33     Выделение динамической памяти C++
Посмотрите здесь:

Выделение динамической памяти - C++
Чем int *List = new int; delete List; отличается от обычного массива (int List) ? Нет, я понимаю, что создал динамическую...

Выделение динамической памяти - C++
Доброго времени суток! я начинающий программист, столкнулась с такой проблемой: выделяю память под динамический массив, например ...

Выделение динамической памяти - C++
Добрый вечер. Помогите разобраться пожалуйста! Суть такова: есть файл, в нем есть данные, мне надо их оттуда считать и вывести на...

Выделение динамической памяти - C++
Всем доброго времени суток. Прошу помочь с задачей. Задача решена, просто нужно переделать её с выделением динамической памяти. ...

выделение динамической памяти - C++
помогите пожалуйста , нужно написать функцию для ввода новой матрицы, не получается выделить под него память. класс: mymatrix ::...

Выделение динамической памяти - C++
Всем привет. Возникла задача, в которой мне необходимо знать как выделяется динамическая память средсвами new/delete. А именно,...

Выделение динамической памяти в функции - C++
Прив. У меня следующая проблема: Необходимо выделить память на массив символьных строк, разбив всю программу на функции. Вот код....

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
1889 / 1744 / 117
Регистрация: 25.03.2012
Сообщений: 5,922
Записей в блоге: 1
27.11.2012, 04:27     Выделение динамической памяти C++ #41
Затычка убила ошибку, но вопрос остался: ЗАЧЕМ В КЛАССЕ "СТРОКА" хранить две разные строки, требующие разные конструкторы для создания и тем самым создающие путаницу, т.к. одна из них всегда будет невалидна???
owned
2 / 2 / 0
Регистрация: 25.11.2012
Сообщений: 76
27.11.2012, 05:04  [ТС]     Выделение динамической памяти C++ #42
Kuzia domovenok, т.к. одна из них всегда будет невалидна??? какая? я тебя не понимать покажи в коде, что убрать, я уже сам в нём запутался и долго разбираю
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.11.2012, 05:24     Выделение динамической памяти C++
Еще ссылки по теме:

Выделение и очистка динамической памяти - C++
Добрый день. Никак не могу найти информацию по следующему вопросу. Допустим создаем динамический массив строк. char** mass=new...

Матрица, выделение динамической памяти - C++
В общем у меня такая проблема: нужно решить задачу двумя способами, сначала без выделения динамической памяти , потом с её выделением ....

Освобождение и выделение динамической памяти - C++
Привет народ, такой вопрос: Допустим в main, указателю выделил память, всё разумеется нормально, читаю пишу всё ок, потом передал этот...

Выделение и использование динамической памяти - C++
Вопрос такого плана, допустим я отвёл в теле метода память под массив q int q = new int ; далее я планирую некий эвент на некий момент...

Выделение динамической памяти для матрицы - C++
Здравствуйте! Подскажите, пожалуйста, что делаю не так..написала программу, которая считывает двумерный массив...с помощью операторов...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Kuzia domovenok
1889 / 1744 / 117
Регистрация: 25.03.2012
Сообщений: 5,922
Записей в блоге: 1
27.11.2012, 05:24     Выделение динамической памяти C++ #43
C++
1
2
3
4
5
6
7
8
9
    String(const char * s)
    {
          string=NULL;
          strncpy(ss, s, 256);
    }
    ~String()
    {
        if (string) delete [] string;
            }
НО, это затычка, т.к. сама логика класса строка говорит, что класс должен содержать лишь один массив, а не 2 как у тебя
Yandex
Объявления
27.11.2012, 05:24     Выделение динамической памяти C++
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru