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

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

Войти
Регистрация
Восстановить пароль
 
ArtMaster
26 / 24 / 3
Регистрация: 27.10.2012
Сообщений: 74
#1

Передача в функцию указателя - C++

18.12.2012, 14:29. Просмотров 566. Ответов 7
Метки нет (Все метки)

Почему плохо передавать в функцию указатель на строку или массив и возвращать указатель на строку или массив?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.12.2012, 14:29
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Передача в функцию указателя (C++):

Передача указателя на шаблонную функцию в другую функцию - C++
Пишу тест для нескольких улучшений квиксорта с измерением времени. Функция benchmark принимает итераторы для диапазона элементов, указатель...

Передача указателя на функцию - C++
Доброго дня Форумчане. Хотелось бы узнать как вызывать функцию получив на нее указатель? пример class C1 { public: void...

передача указателя на функцию - C++
Помогите исправить ошибку уже незнаю как быть В бивает ту ошибку error C2664: Generate: невозможно преобразовать параметр 2 из "void"...

Передача указателя в функцию - C++
Здравствуйте. Прошу помощи, сижу уже пару часов читаю мануалы, но так и не смог до конца понять, что мне делать. Есть вот такой код: ...

Передача указателя в функцию - C++
Здраствуйте. Если не охота читать гору текста то этот абзац + последущий за ним код можете пропустить. Задали на лабе сделать некий...

Передача указателя на функцию - C++
Есть класс в котором: typedef void(*setChar)(int x, int y, wchar_t c); void Paint(setChar SetChar) В другом классе...

7
Invader_Zim
Twilight Parasite
153 / 149 / 2
Регистрация: 21.07.2011
Сообщений: 908
18.12.2012, 14:30 #2
ArtMaster, Передать указатель-это наоборот самый кошерный способ!
Кто тебе сказал такую глупость?
Зачем тогда еще указатели-то?
0
ArtMaster
26 / 24 / 3
Регистрация: 27.10.2012
Сообщений: 74
18.12.2012, 14:33  [ТС] #3
да где-то тут на форуме видел, только не могу найти где именно, еще много споров было, поэтому и стало интересно почему.
0
v.a.l.i.d
413 / 378 / 10
Регистрация: 21.09.2012
Сообщений: 913
18.12.2012, 14:40 #4
Для примера. Допустим есть что-то вроде этого:
C++
1
2
3
4
5
6
7
8
9
10
11
12
struct Z
{
    int i;
    float f;
    double d;
    char str[100];
};
 
void function(Z *ptr)
{
 
}
В функцию function передается указатель на структуру. Плюс от этого - это экономия памяти.
И программа будет быстрее работать.
Ведь в эту функцию передаются только 4 байта вместо всей структуры целиком.
1
0x10
2474 / 1647 / 247
Регистрация: 24.11.2012
Сообщений: 4,068
18.12.2012, 14:44 #5
ArtMaster, говорили тут о том, что нельзя возвращать указатели на локальные объекты. По понятным причинам - после выхода из функции они не будут существовать.
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
18.12.2012, 14:50 #6
0x10, так можно
C++
1
2
3
4
5
6
7
long* fun(long *p)
{
    return p;
}
 
long num = 10;
fun(&num);
Конено, лучше же так
C++
1
2
3
4
long& fun(long& num)
{
    return num;
}
0
Invader_Zim
Twilight Parasite
153 / 149 / 2
Регистрация: 21.07.2011
Сообщений: 908
18.12.2012, 14:50 #7
0x10, Как раз тут получается херня. Можно выделить память, можно ее заполнить и вернуть указатель(в gcc 4.7 работает, хотя это неправильно. Ну или правильно сделанное неправильно)
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
18.12.2012, 14:52 #8
Цитата Сообщение от Invader_Zim Посмотреть сообщение
Можно выделить память, можно ее заполнить и вернуть указатель
Ну не на стэке ведь, а в куче.
0
18.12.2012, 14:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.12.2012, 14:52
Привет! Вот еще темы с ответами:

Передача указателя в функцию - C++
Поиском не пользовался, возможно данный вопрос уже проскакивал. Проблема том, что VS2010 на отрез отказывается передавать указатель на...

Передача указателя в функцию по ссылке - C++
Доброго времени суток. Может и в заголовке написан бред, но в общем нужно сделать так, чтобы указатель передавался в функцию, в функции...

Передача указателя на метод в функцию - C++
Подскажите плиз. Есть некий класс и в нём метод: ... DWORD WINAPI func(LPVOID lParam) { ... return 1; } ...

Передача в функцию указателя на указатель - C++
Добавление нового элемента в начало списка: void Add_Beg(List **u, Data &x) // Почему в 1 аргументе функции указатель на указатель? { ...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

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