Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.05.2012, 18:45   #1
_KUL
Пользователь
 
Регистрация: 12.03.2011
Сообщений: 96
По умолчанию неопределённый размер строки типа char

Объясните как работать с безразмерными строками через тип чар

PHP код:
#include <iostream> 

using namespace std

int main() 


    
char str[10]; 
    
cin >> str
    
cout << "Stroka str[10] " << str << "\n"

    
char p
    
cin >> p
    
cout << "Stroka p " << << "\n"

    
cout << endl
    return 
0

В первом случае мы создаём в памяти место под 10 ячеек для букв, вводим и выводим их.
Во втором случае мы создаём чар указатель и ему присваиваем безграничное количество символов?! Как для этого выделяется память? И почему в конце программа завершается некорректно? (компилируется без ошибок)
Например если заранее не известно, сколько пользователь введёт символов, как корректно выделить переменную?
_KUL вне форума Ответить с цитированием
Старый 16.05.2012, 18:51   #2
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,120
По умолчанию

_KUL

Как для этого выделяется память?

никак oO

И почему в конце программа завершается некорректно?

см. выше

Например если заранее не известно, сколько пользователь введёт символов, как корректно выделить переменную?

Си: malloc + realloc

C++: std::string
Rififi вне форума Ответить с цитированием
Старый 16.05.2012, 19:24   #3
_KUL
Пользователь
 
Регистрация: 12.03.2011
Сообщений: 96
По умолчанию

т.е. в принципе нельзя, без заранее известного размера, определить переменную типа char? И обязательно нужно использовать тип стринг, который между сями не взаимооднозначен?!
_KUL вне форума Ответить с цитированием
Старый 16.05.2012, 19:54   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
который между сями не взаимооднозначен?!
где это он не однозначен?
в С++ это стандартный класс, в С свои методы, там ручками.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 16.05.2012, 19:54   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
тип стринг, который между сями не взаимооднозначен?!
Чего?

Пишите свою обертку с алокаторами и релокаторами.
p51x на форуме Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Возможно ли в массив типа char записать первым элементом значение переменной типа float? Green Gin Общие вопросы C/C++ 2 05.12.2011 01:50
Вывод русской строки типа char* dollemika Visual C++ 2 26.11.2011 12:33
Как убрать в ячеиках типа char(255) после моеи строки пробелы ArtGrek БД в Delphi 4 02.05.2011 09:46
Как получить размер строки типа LPCWSTR? Gtx541 Общие вопросы C/C++ 1 30.05.2010 14:18
Запись числа типа инт в ячейку двумерного массива типа char AxenicX Помощь студентам 1 25.09.2009 00:35