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

Передача по ссылке - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Перегрузка операторов ввода вывода http://www.cyberforum.ru/cpp-beginners/thread631269.html
ребята болит уже голова)) main.cpp #include "myStr.h" int main() { myStr myS("ok"); cout<<myS<<endl;//надо чтоб заработало char x; cin>>x; return 0;
C++ std::map нефикс. размер? Нубо-вопрос, std::map и std::array имеют фиксированный размер, как и обычные массивы? http://www.cyberforum.ru/cpp-beginners/thread631265.html
int / INT etc C++
Вопрос легок, в чем разница между обычным int и Виндовским INT / etc? Попрошу подробного ответа :)
Почему антивирус считает эту программу вирусом? C++
Компилирую и антивирус ее удаляет в карантин. Что это такое?:( #include <iostream> #include <windows.h> using namespace std; int main() { int a; int b;
C++ Дано x,y,z Вычеслить a,b, если: http://www.cyberforum.ru/cpp-beginners/thread631215.html
a=(3+e^(y-1))/(1+x^2 |y-tg(z)| ) b=1+(y-x)+〖(y-x)〗^2/2+(y-x)^3/3
C++ Трактри́са (линия влечения) у кого-то есть реализация этой функции или же знаете библиотеку в которой есть такая реализация? подробнее

Показать сообщение отдельно
bgm313
12 / 12 / 2
Регистрация: 27.07.2012
Сообщений: 208
31.07.2012, 18:52  [ТС]     Передача по ссылке
Цитата Сообщение от Schizorb Посмотреть сообщение
В последнем примере:

C++
1
2
3
4
5
6
int *swap(int x) // создается локальная переменная x (копия переданного аргумента)
{
          
    int *t = &x; // берется адрес этой локальной копии (не исходного x!!!)
    return t; // возвращается этот адрес
}
То есть в p лежит не адрес переменной x из main, а адрес локальной переменной x из функции swap (это разные переменные). Так вообще делать нельзя, поскольку автоматические переменные уничтожаются при выходе из функции. Т.е. не возвращайте ссылки или указатели на локальные переменные.

Выход - передать аргумент по ссылке, т.е.
C++
1
int *swap(int & x)
Тогда не будет локальных копий переменной.
Да, я в принципе так и думал. НО локальная переменная уничтожается при выходе из функции. Тогда в последнем примере я должен увидеть на экране мусор, а не значение локальной переменной, которой уже нет.
 
Текущее время: 15:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru