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

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

Войти
Регистрация
Восстановить пароль
 
bgm313
12 / 12 / 2
Регистрация: 27.07.2012
Сообщений: 208
#1

Локальная переменная - C++

24.08.2012, 20:40. Просмотров 340. Ответов 5
Метки нет (Все метки)

Если в функции объявляется символ,например так:

C++
1
2
3
4
5
char f(void){
  char ch;
  ch = getchar();
  return ch;
}
,то можно ли вернуть символ так, как это сделал я. ch уйдёт из области видимости эта ошибка?
Как тогда вернуть символ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.08.2012, 20:40     Локальная переменная
Посмотрите здесь:

C++ Статическая локальная переменная
C++ Использована неинициализированная локальная переменная
C++ Использована неинициализированная локальная переменная
C++ Использована неинициализированная локальная переменная
Ошибка: использована неинициализированная локальная переменная C++
Использована неинициализированная локальная переменная C++
Локальная неинициализированная переменная C++
C++ Неинициализированная локальная переменная - исправить ошибку
C++ Неинициализированная локальная переменная
C++ Функция. использована неинициализированная локальная переменная
C++ Локальная переменная внутри цикла
C++ Использована неинициализированная локальная переменная

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
6126 / 5729 / 1853
Регистрация: 18.12.2011
Сообщений: 14,648
Завершенные тесты: 1
24.08.2012, 20:56     Локальная переменная #2
Все в этом коде правильно.
По return ch; делается копия переменной ch,
которая и возвращается в качестве результата.
bgm313
12 / 12 / 2
Регистрация: 27.07.2012
Сообщений: 208
24.08.2012, 20:59  [ТС]     Локальная переменная #3
А если будет так:
C++
1
2
3
4
5
char *f(){
  char str[30];
  strcpy(str,"qwee");
  return str;
}
Так тоже верно?
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1242 / 991 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
24.08.2012, 21:19     Локальная переменная #4
А вы как думаете? Всё точно так же: делается копия указателя на массив, она передаётся наружу. А вот сам массив удаляется.
bgm313
12 / 12 / 2
Регистрация: 27.07.2012
Сообщений: 208
24.08.2012, 21:35  [ТС]     Локальная переменная #5
т.е. не верно?
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1242 / 991 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
24.08.2012, 21:40     Локальная переменная #6
Да, обращение по полученному указателю — undefined behavior.
Yandex
Объявления
24.08.2012, 21:40     Локальная переменная
Ответ Создать тему
Опции темы

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