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

Выделение памяти. - C++

Восстановить пароль Регистрация
 
Funky108
 Аватар для Funky108
2 / 2 / 0
Регистрация: 13.11.2009
Сообщений: 24
07.12.2009, 18:45     Выделение памяти. #1
Значит так.Задача такая.
Ввести строки или строку символов. Сколько мы будем вводить символов неизвестно.Может быть 10 а может быть больше или меньше.Так вот как выделить память на этот массив если я буду вводить неизвестно сколько символов если функция malloc() выделяет определенное количество памяти?А мне нужно чтобы динамическая память увеличивалась при вводе символа. Знаю еще функции realloc() которая добавляет к выделенной памяти еще некоторую область памяти.

В общем задача ввести символы неизвестного количества.

Как это сделать?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.12.2009, 18:45     Выделение памяти.
Посмотрите здесь:

Выделение памяти C++
C++ Выделение памяти...
C++ Не выделение памяти
C++ выделение памяти
Выделение памяти C++
Выделение памяти C++
Выделение памяти C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Rififi
 Аватар для Rififi
2332 / 1047 / 43
Регистрация: 03.05.2009
Сообщений: 2,656
08.12.2009, 00:06     Выделение памяти. #2
с помощью malloc - выделить память, с помощью realloc - нарастить выделение
Sayrus89
 Аватар для Sayrus89
31 / 31 / 1
Регистрация: 26.10.2009
Сообщений: 98
08.12.2009, 00:54     Выделение памяти. #3
почему бы просто не использовать std::string?
Андрейка
419 / 223 / 27
Регистрация: 25.03.2009
Сообщений: 744
08.12.2009, 01:03     Выделение памяти. #4
C++
1
2
std::string s;
       std::cin>>s;
вводи скоко хочешь
Sayrus89
 Аватар для Sayrus89
31 / 31 / 1
Регистрация: 26.10.2009
Сообщений: 98
08.12.2009, 01:08     Выделение памяти. #5
тогда уже:
C++
1
2
string s;
getline( cin, s );
Funky108
 Аватар для Funky108
2 / 2 / 0
Регистрация: 13.11.2009
Сообщений: 24
08.12.2009, 20:42  [ТС]     Выделение памяти. #6
А на си как это будет выглядеть? то бишь не С++ код

Думал сначала выделить память допустим два байта и при нажатии какойто клавиши функцией realloc организовать увелечение памяти на +1 байт и зациклить пока не будет Enter клавиша нажата.

Пока не представляю как
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.12.2009, 21:14     Выделение памяти.
Еще ссылки по теме:

C++ Выделение памяти
C++ выделение памяти
C++ Выделение памяти
Выделение памяти(С = С++) C++
Выделение памяти C++

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

Или воспользуйтесь поиском по форуму:
Gravity
 Аватар для Gravity
556 / 550 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
08.12.2009, 21:14     Выделение памяти. #7
Сообщение было отмечено автором темы, экспертом или модератором как ответ
На Си это будет просто как табуретка.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <stdlib.h>
 
int main(void)
{
    char *s;
    int i, maxlen = 512;
 
    printf("Введите строку: ");
    s = (char *) malloc(maxlen);
    for(i = 0; (s[i] = getchar()) != '\n'; i++)
        if(i >= maxlen - 1) {
            maxlen *= 2;
            s = realloc(s, maxlen);
        }
    s[i] = '\0';
 
    printf("Строка: %s\n", s);
    free(s);
    return 0;
}
Yandex
Объявления
08.12.2009, 21:14     Выделение памяти.
Ответ Создать тему

Метки
Строки
Опции темы

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