Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ метод перестановки максимального элемента https://www.cyberforum.ru/ cpp-beginners/ thread850050.html
Метод перестановки максимального элемента. Пусть дано некоторое число k,(0<k<n). Находим максимальныйэлемент среди чисел a0,...,ak. Пусть этим максимумом является некоторый элемент aj. Обмениваем...
Подскажите плз, почему не работает C++
Почему-то не работает цикл "for". При запуске кода в консольном окне переменная "h" проходит от "0" до "diametr". Но после окончания цикла когда хочу посмотреть все цифры, то показывает только 300...
C++ Определить, есть ли в массиве строка, содержащая только отрицательные числа
дан двумерный массив целых чисел,определить есть ли в нем строка,содержащая только отрицательные числа дано двовимірний масив цілих чисел,визначити чи є в ньому стрічка,що містить тільки відємні...
C++ Опишите процесс вычисления выражения заданного выражения 3 + 2 * x -0,5 – 4 / x. Обраб отайте ошибку извлечения квадратного корня из отрицательного #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... https://www.cyberforum.ru/ cpp-beginners/ thread850019.html
C++ Функция вставки в list https://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;;...
Задача в паскале. Вводитс восьмизначное число. Поменять в нем местами соседние цифры C++
Вводится восьмизначное число. Поменять в нем местами соседние цифры. К понедельнику срочно надо.
C++ метод ньютона рафсона для определения ренты
Помогите пожалуйста! Составила программу для этого примера Sпрен=1512,182, k=12,m=2,R=30,n=12,i=? а с++ выдает ошибку,не могу ее найти. #include<stdio.h> #include<conio.h> #include<math.h>...
C++ Ряды: подсчет суммы введного с клавиатуры ряда Нужно написать программу, для подсчета суммы введного с клавиатуры ряда, ряд будем вводить как конструктор , типо лего, чтоб выбирать элементы : числитель, знаменатлель и выбирать основные функции... https://www.cyberforum.ru/ cpp-beginners/ thread849986.html
C++ Работа с бинарным файлом (Создать новый текстовый файл, в котором числа будут отсортированы в порядке возрастания.) https://www.cyberforum.ru/ cpp-beginners/ thread849975.html
Аларм! Срочно прошу помощи! Есть задача: Записать бинарный файл с массивом целых чисел. Создать новый текстовый файл, в котором числа будут отсортированы в порядке возрастания. Есть программа: ...
C++ Не работает программа написала код, а он не работает, помогите пожалуйста найти ошибку, задание: По заданной квадратной матрице n*n из нулей и единиц определите, может ли данная матрица быть матрицей смежности простого... https://www.cyberforum.ru/ cpp-beginners/ thread849972.html
5472 / 4867 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
27.04.2013, 15:25 0

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

27.04.2013, 15:25. Просмотров 706. Ответов 4
Метки (Все метки)

Ответ

Не видно, как код используется.
Вот так будет ошибка:
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 содержит адресс выделенной памяти.

Вернуться к обсуждению:
При передачи указателя на обьект ошибка,а при передаче ссылки на указатель нет. Почему?
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.04.2013, 15:25

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Ошибка Access violation при передаче указателя в функцию
выделяю память для нужд програмных и соханяю его. char *resadres =(char*) VirtualAlloc (0,...

Ошибка компиляции при передаче указателя на объект в вектор
Реализированная на строках 32-39 функция записывающая даннные в вектор не работает и еще при...

Ошибка при передаче в функцию указателя на элемент массива
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;ctime&gt; #include &lt;cstdlib&gt; #include &lt;cmath&gt; ...

Использование указателя. Почему глобальная переменная работает, а указатель нет?
Не понимаю почему не работают указатели. Вроде все просто а результат не правильный. И еще если я...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.