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

При передачи указателя на обьект ошибка,а при передаче ссылки на указатель нет. Почему? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ метод перестановки максимального элемента http://www.cyberforum.ru/cpp-beginners/thread850050.html
Метод перестановки максимального элемента. Пусть дано некоторое число k,(0<k<n). Находим максимальныйэлемент среди чисел a0,...,ak. Пусть этим максимумом является некоторый элемент aj. Обмениваем значения элементов aj и ak. Указанную процедуру последовательно выполняем для k=n−1,n−2,...,1.
C++ Подскажите плз, почему не работает Почему-то не работает цикл "for". При запуске кода в консольном окне переменная "h" проходит от "0" до "diametr". Но после окончания цикла когда хочу посмотреть все цифры, то показывает только 300 последних значений. В чем может быть причина? Заранее благодарен... #include "stdafx.h" int _tmain() { setlocale (LC_ALL,"Rus"); double L, R, V1, V2, V, pi; http://www.cyberforum.ru/cpp-beginners/thread850047.html
C++ Определить, есть ли в массиве строка, содержащая только отрицательные числа
дан двумерный массив целых чисел,определить есть ли в нем строка,содержащая только отрицательные числа дано двовимірний масив цілих чисел,визначити чи є в ньому стрічка,що містить тільки відємні чисел
Опишите процесс вычисления выражения заданного выражения 3 + 2 * x -0,5 – 4 / x. Обраб отайте ошибку извлечения квадратного корня из отрицательного C++
#include "stdafx.h" #include <iostream> #include <stdio.h> #include <conio.h> #include <string> #include <sstream> #include <stdlib.h> #include <string.h> #include <math.h> using namespace std;
C++ Функция вставки в list http://www.cyberforum.ru/cpp-beginners/thread850007.html
Вставить элемент Е после каждого элемента списка, превышающего некоторое значение Р. #include <iostream> #include <list> using namespace std; void Insert (list<int> l) { int p, e, t, n = 0;; cout << "Enter p and e: "; cin >> p >> e;
C++ Задача в паскале. Вводитс восьмизначное число. Поменять в нем местами соседние цифры Вводится восьмизначное число. Поменять в нем местами соседние цифры. К понедельнику срочно надо. подробнее

Показать сообщение отдельно
alsav22
5415 / 4811 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
27.04.2013, 15:25     При передачи указателя на обьект ошибка,а при передаче ссылки на указатель нет. Почему?
Не видно, как код используется.
Вот так будет ошибка:
C++
1
2
3
SomeObj* obj = NULL;
someFun(obj);
printf("%d\n", obj->x);
А так не будет:
C++
1
2
3
SomeObj* obj = NULL;
someFun2(obj);
printf("%d\n", obj->x);
Разница в том, что в первом варианте, в функции, работа идёт с копией указателя (передача по значению). При выходе из функции копия перестаёт существовать, obj по прежнему содержит NULL. Память, выделенная в функции, потеряна. Во втором варианте, работа идёт непосредственно с obj (передача по ссылке). После выхода из функции, obj содержит адресс выделенной памяти.
 
Текущее время: 06:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru