![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 29.04.2012
Сообщений: 36
|
![]() Код:
вот собственно передает какие-то непонятные символы не могу понять почему, вроде верно всё |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
![]()
возвращаешь наружу мертвый элемент.
Попробуй так: Код:
|
![]() |
![]() |
![]() |
#3 | |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
![]()
Вот так работает:
Код:
Цитата:
Последний раз редактировалось 8Observer8; 26.05.2012 в 15:22. |
|
![]() |
![]() |
![]() |
#4 | ||
Пользователь
Регистрация: 29.04.2012
Сообщений: 36
|
![]() Цитата:
![]() использую Microsoft Visual Studio Developer 2011 Цитата:
![]() Последний раз редактировалось Stilet; 27.05.2012 в 10:32. |
||
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
![]()
Не вариант - возвращать наружу указатель/ссылку на дохлый объект.
Если нужно возвращать в принципе любую строку, стало быть нужен код, который эти строки создает. Покажи, как ты будешь создавать в принципе разные строки [QUOTE=8Observer8;1050825]Вот так работает: Не работает так. То, что память ещё остаётся непопорченной - не значит, что она живая. Твой указатель смотрит на убитый объект. Последний раз редактировалось Stilet; 27.05.2012 в 10:33. |
![]() |
![]() |
![]() |
#6 | |
Пользователь
Регистрация: 29.04.2012
Сообщений: 36
|
![]() Цитата:
суть в том, что я в одной функции преобразовываю строку и хочу её передать аргументом в другую функцию там я её заполняю посимвольно можно реализовать через cin.getline() но почему дохлый объект? указатели ведь указывают на адрес даже, когда из функции выходим |
|
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
![]()
[QUOTE=8Observer8;1050825]Вот так работает:
Не работает так. То, что память ещё остаётся непопорченной - не значит, что она живая. Твой указатель смотрит на убитый объект. Если совсем точно - литерная константа, определяемая внутри функции по стандарту имеет класс памяти static Поэтому, вот такой код валидный: Код:
Цена за это: не возможность освободить память занимаемую строкой "privet" до конца жизни приложения. Тот факт, что вы присваеваете результат (const char* const) простому char* - раздолбайство языка си. Так делать некорректно, но язык позволяет (типа все знают, что это фейл, но всем пофигу, да). |
![]() |
![]() |
![]() |
#8 | |
Пользователь
Регистрация: 29.04.2012
Сообщений: 36
|
![]()
[QUOTE=_Bers;1050855]
Цитата:
если я не знаю, какая она будет, а хочу возвращать рандомную? |
|
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
![]()
Начни о описания процедуры создания строки.
Создай строку. /зы твой подход некорректный изначально |
![]() |
![]() |
![]() |
#10 | |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
![]() Цитата:
Код:
|
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Возврат массива из функции | max_prorok | Помощь студентам | 2 | 06.10.2011 12:39 |
Возврат 2 и более аргументов из функции. | Drilla | Microsoft Office Excel | 2 | 18.09.2011 14:11 |
c++ возврат указателя из функции | Neolit1819 | Помощь студентам | 6 | 28.03.2011 15:37 |
Мини бэйсик:объявление функции, вызов функции , возврат. | AL_LORD | Помощь студентам | 2 | 14.10.2010 17:48 |
Возврат результата функции по ссылке | gladov | Общие вопросы C/C++ | 2 | 24.06.2008 22:48 |