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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.67
Del_Piero_10
Smart is the new Sexy
24 / 24 / 1
Регистрация: 29.12.2008
Сообщений: 109
#1

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

22.01.2009, 20:24. Просмотров 1506. Ответов 16
Метки нет (Все метки)

Как можно реализовать динамическое выделение для строки, т.е. например у меян есть указатель - char *c. Мне необходимо ввести строку с клавиатуры, выделить для нее память через указатель с и занести ее в эту память. Как это можно реализовать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.01.2009, 20:24     Вопрос о динамическом выделении памяти для строки
Посмотрите здесь:

Вопрос о динамическом выделении памяти - C++
Доброго времени суток всем. у меня вопрос к работе следующего кода: delete values; // Удаляем массив из кучи ...

Немного о динамическом выделении памяти ... - C++
объявление данных в классе: class Employee {.......... private: char *firstName; char *lasrName; }

Ошибка на динамическом выделении памяти - C++
программа ниже безупречно выполнялась под С++Builder 6.0 (консольное приложение). При переводе ее в VC6.0 (кроме сделанных исправлений -...

Ошибка при динамическом выделении памяти - C++
Я не понимаю почему, но почему-то пример по динамическому выделению памяти, взятый с этой веб-страницы: http://cppstudio.com/post/9555/...

Ошибка при динамическом выделении памяти - C++
почему у меня возникет ошибка вот тут struct TOVAR *New = new struct TOVAR; пишит недопустимый неполный тип на struct подчеркивает...

Создание исключения при динамическом выделении памяти - C++
Вот код из учебника в нем мне все понятно. #include<iostream> #include<cstdlib> //exit() #include<new> using std::cout;using...

Cin.getline() не работает при динамическом выделении памяти - C++
Почему в таком коде cin.getline() работает не так как надо? Если очистить поток, то будет все нормально. #include <iostream> using...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Бартимеус
181 / 33 / 2
Регистрация: 29.10.2008
Сообщений: 283
22.01.2009, 20:30     Вопрос о динамическом выделении памяти для строки #2
выдели дин. память для символьного массива

Добавлено через 1 минуту 14 секунд
char* array = new char[размер массива];
Del_Piero_10
Smart is the new Sexy
24 / 24 / 1
Регистрация: 29.12.2008
Сообщений: 109
22.01.2009, 20:37  [ТС]     Вопрос о динамическом выделении памяти для строки #3
Я ведь не знаю еще размер строки, которую введут. Как я могу выделить память?
Бартимеус
181 / 33 / 2
Регистрация: 29.10.2008
Сообщений: 283
22.01.2009, 20:41     Вопрос о динамическом выделении памяти для строки #4
запроси у пользователя
Del_Piero_10
Smart is the new Sexy
24 / 24 / 1
Регистрация: 29.12.2008
Сообщений: 109
22.01.2009, 20:46  [ТС]     Вопрос о динамическом выделении памяти для строки #5
Нее... Это неинтересно.
Бартимеус
181 / 33 / 2
Регистрация: 29.10.2008
Сообщений: 283
22.01.2009, 20:52     Вопрос о динамическом выделении памяти для строки #6
ну тогда используй string
Del_Piero_10
Smart is the new Sexy
24 / 24 / 1
Регистрация: 29.12.2008
Сообщений: 109
22.01.2009, 21:11  [ТС]     Вопрос о динамическом выделении памяти для строки #7
Конкретный ответ есть?
Бартимеус
181 / 33 / 2
Регистрация: 29.10.2008
Сообщений: 283
22.01.2009, 21:15     Вопрос о динамическом выделении памяти для строки #8
Цитата Сообщение от Del_Piero_10 Посмотреть сообщение
Конкретный ответ есть?
а чем этот не устраивает? подключи <string> и юзай
Del_Piero_10
Smart is the new Sexy
24 / 24 / 1
Регистрация: 29.12.2008
Сообщений: 109
22.01.2009, 21:30  [ТС]     Вопрос о динамическом выделении памяти для строки #9
Блиин... В обще нужна символьная строка. Я вроде дал толковое определение того, что меня интересует. Жду еще овтетов.
Vourhey
Почетный модератор
6477 / 2252 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
22.01.2009, 21:42     Вопрос о динамическом выделении памяти для строки #10
Ты не можешь определить размер того, чего у тебя еще нет. Твоя прога не прочитала строку? Нет. Вот и не пытайся узнать размер того, о существовании чего твоя прога еще даже не знает.
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
22.01.2009, 23:41     Вопрос о динамическом выделении памяти для строки #11
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
 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
#define MAXLINE  1000   /* максимальная длина строки */
 
/* выделяет память для введённой строки */
main()
{
    char *s;
    unsigned len;
    
    if ((s = (char *) malloc(MAXLINE)) == NULL)
        return 1;
    if (fgets(s, MAXLINE, stdin) == NULL) {
        free((void *) s);
        return 2;
    }    
    if ((len = strlen(s)) < MAXLINE-1)
        if (realloc((void *) s, len+1) == NULL) {
            free((void *) s);
            return 3;
        }
    printf("%s", s);
    free((void *) s);
    return 0;    
}
суть в том, что сначала записываешь её в большой массив а потом его ужимаешь
Vourhey
Почетный модератор
6477 / 2252 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
22.01.2009, 23:46     Вопрос о динамическом выделении памяти для строки #12
accept, он же ясно написал, что ему не нужен большой массив. а выделение памяти под точное число символов в строке. это не решение.
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
23.01.2009, 00:27     Вопрос о динамическом выделении памяти для строки #13
в итоге остаётся выделенная память под точное число символов в строке там realloc
Vourhey
Почетный модератор
6477 / 2252 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
23.01.2009, 00:33     Вопрос о динамическом выделении памяти для строки #14
Цитата Сообщение от accept Посмотреть сообщение
в итоге остаётся выделенная память под точное число символов в строке там realloc
Блин, да понимаю я это. Но это не решение поставленной задачи.
Тебе по слогам формулировать то, что людям нужно?
Человек хочет выделить память под строку по ее длине сразу же. Не используя левых выделений, реалоков и т. д..
Описываю:
1. пользователь ввел на терминал строку
2. прога определила длину введенной строки
3. выделила память по длине.
4. считала строку с терминала в этот буфер.
Вроде, я верно понял.
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
23.01.2009, 01:01     Вопрос о динамическом выделении памяти для строки #15
я сделал так чтобы у него память тратилась только под строку, получилась буферизация внутри программы, а ты предлагаешь использовать внешнюю буферизацию, итого получается зависимость от внешней буферизации (получение доступа к внешнему буферу куда строка записалась может варьироваться)
Vourhey
Почетный модератор
6477 / 2252 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
23.01.2009, 01:11     Вопрос о динамическом выделении памяти для строки #16
accept, слушай, покажи, где я предложил внешнюю буферизацию? Ты мне прямо в qoute покажи, где я написал ему использовать это.
Ты мне просто скоро моск съешь своими какими-то необоснованными выводами... Задание одно - решение иное, написано одно, говорит другое. Ты меня поражаешь просто в корень нелогичностьью изложения... Забей, кароч...

P. S. если бы я хотел предложить, то согласился бы на использовании string, наверное. Либо твоим способом.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.01.2009, 12:43     Вопрос о динамическом выделении памяти для строки
Еще ссылки по теме:

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

Использование конструктора базового класса при динамическом выделении памяти - C++
Есть базовый класс, от него наследуются несколько классов, свой конструктор я определил в базовом классе. Далее нужно сделать так:parent...

Ошибка при динамическом выделении двумерного массива char - C++
Ребята, спасите-помогите. Нужно выделить двумерный массив типа char для игрового поля. Выделяю вроде бы как положено, но получаю рантайм...

Ошибка при выделении памяти динамически для структуры - C++
Есть программа. Вылетает ошибка. Если gets(BLOCKNOTE.NAME) заменить на cin&gt;&gt;BLOCKNOTE.NAME все работает нормально. Хотелось бы ипользовать...

Что происходит за кулисами при выделении памяти для переменной? - C++
Здравствуйте, уважаемые форумчане! У меня такой вопрос: &quot;Что происходит, когда я объявляю переменную? Я думаю, что когда я объявляю...


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

Или воспользуйтесь поиском по форуму:
Del_Piero_10
Smart is the new Sexy
24 / 24 / 1
Регистрация: 29.12.2008
Сообщений: 109
23.01.2009, 12:43  [ТС]     Вопрос о динамическом выделении памяти для строки #17
Описываю:
1. пользователь ввел на терминал строку
2. прога определила длину введенной строки
3. выделила память по длине.
4. считала строку с терминала в этот буфер.
Вроде, я верно понял.
Именно это мне и надо, только как это реализовать...
Yandex
Объявления
23.01.2009, 12:43     Вопрос о динамическом выделении памяти для строки
Ответ Создать тему
Опции темы

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