Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как вітянуть значение? 
:(
    Опции темы
Sergio
  Дата 21.5.2007, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 843
Регистрация: 28.7.2006
Где: Solar System-> Earth

Репутация: 0
Всего: 1



Код

char* func()
 {
   char* pch = "123";
    return pch;
 } 

Как "вытянуть" значение pch?
делаю так:
Код

char qwerty =  *func();
cout<<qwerty;


Это сообщение отредактировал(а) Sergio - 21.5.2007, 14:45
PM MAIL ICQ   Вверх
Fazil6
Дата 21.5.2007, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: 35
Всего: 60



Цитата(Sergio @  21.5.2007,  14:44 Найти цитируемый пост)
Как "вытянуть" значение pch?

вытянуть куда и что?
Твой код функции func некоректен. Непонятно чего ты хочешь получить
PM MAIL   Вверх
Xenon
Дата 21.5.2007, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1529
Регистрация: 12.4.2006

Репутация: 11
Всего: 50



Код, конечно - бред, но раз так ... то:
Код

char* func()
 {
   char* pch = "123";
    return pch;
 } 

char* qwerty =  func();
cout<<qwerty;


Это сообщение отредактировал(а) Xenon - 21.5.2007, 14:54


--------------------
user posted image  
PM MAIL   Вверх
Fazil6
Дата 21.5.2007, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: 35
Всего: 60



Код

char* func()
 {
   static char pch[] = "123";
   return pch;
 } 


Добавлено через 3 минуты и 31 секунду
Цитата(Xenon @  21.5.2007,  14:53 Найти цитируемый пост)
Код, конечно - бред, но раз так ... то:

ага, вот тока что-нить типа 
Код

func()[0] = '7';

даст хороший ТЫГДЫЩ!!!
PM MAIL   Вверх
Xenon
Дата 21.5.2007, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1529
Регистрация: 12.4.2006

Репутация: 11
Всего: 50



Fazil6, Ну это же констатный литерал smile понятное дело. Правда из вовзращаемоего функцией значения непонятно - констатный литерал ли это или указатель - просто нужно отдавать себе отчет smile


--------------------
user posted image  
PM MAIL   Вверх
Hurricane
Дата 21.5.2007, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 126
Регистрация: 10.4.2007

Репутация: 6
Всего: 9



Цитата(Fazil6 @  21.5.2007,  06:56 Найти цитируемый пост)
ага, вот тока что-нить типа 
Код

func()[0] = '7';

даст хороший ТЫГДЫЩ!!! 


Ну а слово const для чего существует?
PM MAIL   Вверх
Fazil6
Дата 21.5.2007, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: 35
Всего: 60



Цитата(Hurricane @  21.5.2007,  18:54 Найти цитируемый пост)
Ну а слово const для чего существует?

и как же оно тут поможет?

Добавлено через 2 минуты и 24 секунды
стаким же успехом можно закоментировать
Код

//func()[0] = '7';


PM MAIL   Вверх
JackYF
Дата 21.5.2007, 19:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



Цитата(Fazil6 @  21.5.2007,  19:12 Найти цитируемый пост)
и как же оно тут поможет?


Код

const char* pch = "sss";




--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Fazil6
Дата 21.5.2007, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: 35
Всего: 60



JackYF, 
Неожиданно...
читал, много думал... К чему это относится?
PM MAIL   Вверх
Hurricane
Дата 21.5.2007, 19:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 126
Регистрация: 10.4.2007

Репутация: 6
Всего: 9



Цитата(Fazil6 @  21.5.2007,  11:12 Найти цитируемый пост)
и как же оно тут поможет? 


Это ты пошутил?

Добавлено через 3 минуты и 27 секунд
Цитата(JackYF @ 21.5.2007,  11:15)
Код

const char* pch = "sss";

Это ты не сможешь изменить указатель. Для того, чтобы не мог менять значение

Код

char const * f() {...}


Хотя для оператора [] в VS и твой вариант сработает.

PM MAIL   Вверх
Xenon
Дата 21.5.2007, 19:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1529
Регистрация: 12.4.2006

Репутация: 11
Всего: 50



Код

const char* func()
{
    char* pch = "123";
    return pch;
} 

int main(int argc, char* argv[])
{
    const char* qwerty =  func();
    std::cout << qwerty;
    std::cin.sync();
    std::cin.get();
    return 0;
}


Ну теперь-то вопрос исчерпан? Никто никого не может поменять кроме const_cast, конечно smile

Это сообщение отредактировал(а) Xenon - 21.5.2007, 19:32


--------------------
user posted image  
PM MAIL   Вверх
Fazil6
Дата 21.5.2007, 19:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: 35
Всего: 60



Цитата(Xenon @  21.5.2007,  19:32 Найти цитируемый пост)
Ну теперь-то вопрос исчерпан? Никто никого не может поменять кроме const_cast, конечно

вопрос будет исчерпан когда хозяин объявится и объяснит чего ему надо. Вполне вероятно, что указатель должен быть не на константу и поэтому я и писал, что const не панацея, к тому же для настоящего индуса const не проблема и всегда можно сделать const_cast(ТЫГДЫЩ!)

Цитата(Hurricane @  21.5.2007,  19:19 Найти цитируемый пост)
Это ты не сможешь изменить указатель.

могу. ++pch; без проблем.


Цитата(Hurricane @  21.5.2007,  19:19 Найти цитируемый пост)
Для того, чтобы не мог менять значение
а если их надо менять?
Может просто писать так как правильно, а не как компилируется? 
Код

char phc1[] = "123";
const char phc2[] = "123";




PM MAIL   Вверх
Xenon
Дата 21.5.2007, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1529
Регистрация: 12.4.2006

Репутация: 11
Всего: 50



Fazil6, ну тогда ТЫГДЫЩ!`ем можно будет утрировать и утрировать ...
А вопрос твой исчерпан ли - ты просто удивился чем const поможет обезопаситься от ТЫГДЫЩ! насколько я понял или иронизировал.

Это сообщение отредактировал(а) Xenon - 21.5.2007, 20:04


--------------------
user posted image  
PM MAIL   Вверх
Hurricane
Дата 21.5.2007, 20:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 126
Регистрация: 10.4.2007

Репутация: 6
Всего: 9



Цитата(Fazil6 @  21.5.2007,  11:51 Найти цитируемый пост)
...к тому же для настоящего индуса const не проблема и всегда можно сделать const_cast(ТЫГДЫЩ!)

А, ну тогда понятно. Больше вопросов не имею  smile .
PM MAIL   Вверх
JackYF
Дата 22.5.2007, 09:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



Цитата(Fazil6 @  21.5.2007,  19:51 Найти цитируемый пост)
могу. ++pch; без проблем.


извини, не удержался...  smile 
Код

const char* const pch = "sss";

так пойдет? smile

Цитата(Fazil6 @  21.5.2007,  19:51 Найти цитируемый пост)
к тому же для настоящего индуса const не проблема и всегда можно сделать const_cast(ТЫГДЫЩ!)


smile




--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0992 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.