Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.95/19: Рейтинг темы: голосов - 19, средняя оценка - 4.95
2 / 2 / 0
Регистрация: 25.11.2012
Сообщений: 76

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

27.11.2012, 01:33. Показов 4669. Ответов 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();
            }
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.11.2012, 01:33
Ответы с готовыми решениями:

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

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

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

42
 Аватар для Kuzia domovenok
4268 / 3328 / 926
Регистрация: 25.03.2012
Сообщений: 12,545
Записей в блоге: 1
27.11.2012, 04:27
Студворк — интернет-сервис помощи студентам
Затычка убила ошибку, но вопрос остался: ЗАЧЕМ В КЛАССЕ "СТРОКА" хранить две разные строки, требующие разные конструкторы для создания и тем самым создающие путаницу, т.к. одна из них всегда будет невалидна???
0
2 / 2 / 0
Регистрация: 25.11.2012
Сообщений: 76
27.11.2012, 05:04  [ТС]
Kuzia domovenok, т.к. одна из них всегда будет невалидна??? какая? я тебя не понимать покажи в коде, что убрать, я уже сам в нём запутался и долго разбираю
0
 Аватар для Kuzia domovenok
4268 / 3328 / 926
Регистрация: 25.03.2012
Сообщений: 12,545
Записей в блоге: 1
27.11.2012, 05:24
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 как у тебя
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.11.2012, 05:24

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
43
Ответ Создать тему
Новые блоги и статьи
Транслитерация текста с кириллицы на латиницу (вариант №2)
Maks 13.11.2026
Обновленная версия ранее созданной обработки. Добавлено: - Проверка исходного текста на кириллицу, через обращение к стандартной функции "ТолькоКириллицаВСтроке" из общего модуля. . .
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы. Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru