Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
ArtMaster
26 / 24 / 8
Регистрация: 27.10.2012
Сообщений: 74
#1

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

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

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

Передача указателя на шаблонную функцию в другую функцию
Пишу тест для нескольких улучшений квиксорта с измерением времени. Функция...

Передача указателя на функцию
Доброго дня Форумчане. Хотелось бы узнать как вызывать функцию получив на нее...

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

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

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

7
Invader_Zim
Twilight Parasite
153 / 149 / 7
Регистрация: 21.07.2011
Сообщений: 908
18.12.2012, 14:30 #2
ArtMaster, Передать указатель-это наоборот самый кошерный способ!
Кто тебе сказал такую глупость?
Зачем тогда еще указатели-то?
0
ArtMaster
26 / 24 / 8
Регистрация: 27.10.2012
Сообщений: 74
18.12.2012, 14:33  [ТС] #3
да где-то тут на форуме видел, только не могу найти где именно, еще много споров было, поэтому и стало интересно почему.
0
v.a.l.i.d
416 / 381 / 113
Регистрация: 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
2571 / 1751 / 288
Регистрация: 24.11.2012
Сообщений: 4,377
18.12.2012, 14:44 #5
ArtMaster, говорили тут о том, что нельзя возвращать указатели на локальные объекты. По понятным причинам - после выхода из функции они не будут существовать.
0
go
Эксперт С++
3637 / 1369 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
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 / 7
Регистрация: 21.07.2011
Сообщений: 908
18.12.2012, 14:50 #7
0x10, Как раз тут получается херня. Можно выделить память, можно ее заполнить и вернуть указатель(в gcc 4.7 работает, хотя это неправильно. Ну или правильно сделанное неправильно)
0
go
Эксперт С++
3637 / 1369 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
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

передача указателя на функцию
Помогите исправить ошибку уже незнаю как быть В бивает ту ошибку error...

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

Передача указателя на вектор в функцию
Путь есть целочисленный вектор, размер которого задается параметром. Мне надо...


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

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

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