Форум программистов, компьютерный форум 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++ Трактри́са (линия влечения) у кого-то есть реализация этой функции или же знаете библиотеку в которой есть такая реализация? подробнее

Показать сообщение отдельно
Schizorb
 Аватар для Schizorb
508 / 460 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
31.07.2012, 18:45     Передача по ссылке
В последнем примере:

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)
Тогда не будет локальных копий переменной.
 
Текущее время: 00:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru